- ベストアンサー
エクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてくだ
エクセルの複数条件に一致したセルを抽出したいのですが、関数で教えてください。 A列 B列 C列 Aファイルには 行 【注文月日】、【氏名】、【商品金額】が記入されています。 Bファイルには 行 【注文月日】、【氏名】、【税金額】が記入されています。 AファイルのD列に、Aファイルの【注文月日】かつ【氏名】がBファイルの【注文月日】かつ【氏名】と一致する場合のBファイルC列の【税金額】を表示したいのです。 VLOOKUP関数では条件が1つだけなので使用できませんが、似たような関数で複数条件ができる関数があるなら教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは! 一例です。 ↓の画像で右側(Bファイル)の方に作業用の列を設けています。 作業列D2セルを =A2&B2 としてオートフィルで下へずぃ~~~!っとコピーします。 そして、AファイルのD2セルに =IF(OR(A2="",COUNTIF([Bファイル.xls]Sheet1!D$2:D$1000,A2&B2)=0),"",INDEX([Bファイル.xls]Sheet1!C$2:C$1000,MATCH(A2&B2,[Bファイル.xls]Sheet1!D$2:D$1000,0))) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 尚、数式はBファイルの1000行目まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてみてください。 以上、参考になれば良いのですが 他に良い方法があれば読み流してくださいね。m(__)m
その他の回答 (1)
- MackyNo1
- ベストアンサー率53% (1521/2850)
VLOOKUP関数を使うなら、A列とB列を結合した文字列をA列の左に挿入し、てこのキーを検索値に指定するのが簡単です。 1つの数式で対応するなら以下のような関数を使うことになります。 =INDEX(ブック名シート名!C:C,MAX(INDEX((ブック名シート名!$A$2:$A$100=A2)*(ブック名シート名!$A$2:$B$100=B2)*ROW($A$2:$B$100),)))
お礼
回答アリガトウございます。 せっかく関数の式を教えていただいたのですが、いまいち理解ができません。 1つ1つの関数のやり方を調べて試行錯誤したのですが、うまくできませんでした。 最初のブック名シート名はファイルBのC列で、2回目と3回目ののブック名シート名はファイルAでよろしかったでしょうか?
お礼
回答ありがとうございます。 図までのせていただき、すごくわかりやすかったです。 参考にさせていただきます。