- ベストアンサー
Excel 複数のデータ抽出
同じエクセルの<sheet a>から「*」が付いている社員を抽出し、 <sheet b>に表示する関数があるんでしょうか? <Sheet a> ___________ 1| Mike | * | 2| Kate | | 3| Dany | * | <Sheet b> ___________ 1| Mike 2| Dany
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
このタイプの問題(条件付き抜き出し)は毎日ここの質問に出ます。 >関数があるんでしょうか 単独の関数ではありません。組み合わせます。それも既出回答のように複雑に。 ーーー 別方法で 作業列を使うなら(imogasi方式。Googleで照会すれば沢山同様の過去質問とその回答が出る) 例 データ Sheet1 A2:C6(C列は関数の結果。作業列。条件該当分に連番を振る) A列 B列 C列 山田 * 1 木村 鈴木 * 2 田中 今井 * 3 ーーー Sheet2 A2に =INDEX(Sheet1!$A$2:$B$6,MATCH(ROW()-1,Sheet1!$C$2:$C$100,0),1) と入れて下方向に式を複写 結果A2:A4 山田 鈴木 今井 #N/Aを出ないようにすることなど省略。上記imogasi方式の回答を見てください。
その他の回答 (2)
「抽出」するのが目的なら、[オートフィルタ]や[フィルタオプションの設定]でも可能だけど、関数に固執する理由が何かあるのでしょうか?
補足
50個以上のエクセル、それぞれ3項目について、 この操作をしなければならず(要は150回以上この操作をするので)、 少しでも簡単に抽出しようと思ったからです。
- mu2011
- ベストアンサー率38% (1910/4994)
一例です。 sheet-bのA1に次の数式を設定して下方向に必要分コピーして下さい。尚、配列数式につき、入力完了時にshift+ctrl+enterキーを同時押下が必要です。 因みに検索行は10行程度としていますので調整して下さい。 =IF(COUNTIF(Sheet1!B:B,"~*")>ROW(A1)-1,INDEX(Sheet1!A:A,SMALL(IF(Sheet1!$B$1:$B$10="*",ROW(Sheet1!$A$1:$A$10),99999),ROW(A1))),"")
お礼
回答、ありがとうございます! すみません、やり方が悪いのか、できませんでした。 イモガシ方式で対応できました。
お礼
ありがとうございます。 イモガシ方式というんですね!