- ベストアンサー
EXCELで文字列の座標を返す関数が知りたいです
例えば、A1~A10のセル範囲内に、特定の文字(1文字のみ。○・×など)が複数入っています。 この範囲の中で、特定の文字のみ入力された座標を全て求めたいのですが、どうしたら求められますか? 返される値は「A3A5A8」に近い値が求められればいいのですが。 使ってるバージョンはoffice XPです。よろしくおねがいします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
データがA2セルから下方に入力されているとします。 C2セルには〇などの特定の文字を入力します。 B2セルには次の式を入力してB11までオートフィルドラッグします。 =IF(A2="","",IF(AND(B1="",A2<>C$2),"",IF(AND(B1="",A2=C$2),"A"&ROW(),IF(AND(B1<>"",A2=C$2),B1&"A"&ROW(),B1)))) D2セルには=B11と入力すればお求めのデータが表示されます。
その他の回答 (2)
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 仮にA:A10範囲から特定文字を抽出します。 任意セルに=IF(COUNTIF(A:A,"特定文字")>=ROW(A1),"A"&SMALL(IF($A$1:$A$10="特定文字",ROW($A$1:$A$10),999),ROW(A1)),"")を設定、入力完了時にshift+ctrl+enterキーを同時押下、下方向に必要分コピー 数式の"特定文字"に文字を入力、又は、別セルならば絶対参照(仮にB1ならば$B$1)形式で入力して下さい。
お礼
回答ありがとうございます。関数文がほかの方と比べて短くてもここまで出来るんですね。仕組み理解して精進させて頂きます!
- kagakusuki
- ベストアンサー率51% (2610/5101)
今仮に、B1セルに特定の文字列、例えば ○ と入力すると、○のみ入力された座標が、B2以下に表示される様にするものとします。 まず、B2セルに次の数式を入力して下さい。 =IF(OR($B$1="",ROWS($1:1)>COUNTIF($A:$A,$B$1)),"","A"&SUMPRODUCT(ROW($A$1:$A$10)*($A$1:$A$10=$B$1)*(COUNTIF(OFFSET($A$1,,,ROW($A$1:$A$10)),$B$1)=ROWS($1:1)))) そして、B2セルをコピーして、B3~B11の範囲に貼り付けて下さい。 後は、B1セルに特定の文字列を入力すれば、A1~A10の範囲において、B1セルに入力したものと同じ文字列が入力されているセルの、セル番号が表示されます。
お礼
回答ありがとうございます。これはすごいですね。EXCELの関数だけでもここまで出来てしまうなんて。自分には関数文を理解するのが大変そうです。特定文字も設定セルによって変えられる点も使いやすそうですね。
お礼
回答ありがとうございます。なるほど、一口に質問の内容でもこれだけのやり方があるなんて。正直驚いています。私の当該フォームではこちらの関数が使いやすそうです。仕組みを理解してがんばって反映させてみます。ありがとうございました。