- ベストアンサー
excelで条件に一致するデータ全てを抽出する方法
現在、エクセル2003を使用しています。 A列・B列・C列にデータが入力されています。 ただし、空白セル(空白行)もあります。 A列に“@Name”とデータ入力がある場合 同じ行のC列の値を抽出したいと思います。 A列に@Nameは複数ありますが、C列の値は それぞれ違いますので、データの集計先はF列に 全て抽出をしたい。 なにか良い方法(VBAや関数)がありましたら 教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一例です。 任意セルに設定、下方向に必要分コピーして下さい。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。 =IF(COUNTIF(A:A,"*@Name*")>ROW(A1)-1,INDEX(C:C,SMALL(IF(ISNUMBER(FIND("@Name",$A$1:$A$100)),ROW($A$1:$A$100),99999),ROW(A1))),"")
その他の回答 (2)
- argument
- ベストアンサー率63% (21/33)
こんばんわ kirari0821 さん 簡単な処理なのでデバッグなしです。 sub a2f():for i = 1 to Range("A65536").End(xlUp).Row:do while range("A" & i).value = "@Name":range("F" & i).value = range("C" & i).value:exit do:loop:next:end sub 一行スクリプトです。 簡単に読み解ける処理なので補足なし。ポイントも要りません。 それに、VBAより前者関数を使った解答の方が一般ではわかりやすいでしょう。ただし、F列初期値にデータをいれたくないならVBAを使うほかありませんが・・・。
- michi_001
- ベストアンサー率32% (21/65)
ん… 要はA列に“@Name”と入力されている行のC列の値をF列に欲しい、ということですか? 基本的には =IF(A1="@Name",C1,"") で下へオートフィルで出来ると思うのですが…