複数抽出に使う

複数抽出に使う

以下のような表が2つあるとします。
【Aファイル】
セル A B C
1行目 商品-a@分類-a@名称
2行目 11   21   ABC
3行目 12   22   DEF
4行目 13   23   GHI

【Bファイル】
セル A B C    D E
1行目 商品-a@分類-a@名称  コード 金額
2行目 1 2 あいう 11000  100
3行目 11   21   かきく 55000  200
4行目 3    4 さしす 90000 300


このとき、「Aファイル」の商品-a{分類-bニ一致するデータを「Bファイル」から検索し、その行ごとに別ファイルに抽出する関数というのはないのでしょうか。

しかも一致するのは複数行あるだろうと思えるので、複数抽出もできると良い。

ちょっと複雑ですが、こんな関数を使ってみましょう。

1.別ファイルにシート名「検索条件」というシートを作成します。

2.シート「検索条件」のA2セル:「=[【Bファイル】]Sheet1!$A$2」
            B2セル:「=[【Bファイル】]Sheet1!$B$2」
            C2セル:「=[【Bファイル】]Sheet1!$C$2」
            D2セル:「=[【Bファイル】]Sheet1!$D$2」
            E2セル:「=[【Bファイル】]Sheet1!$E$2」

と入力しておきます。E2の次はF・G・H・・・・と必要な分だけ同じように関数をコピーします。

3.1行目に左側から「商品No」「分類No」「商品名」「コード」「金額」と名前を入れておきます。

4.抽出元のデータがあるシートに移って、「商品-avの1行目の所に「=DGET([【Bファイル】]Sheet1!$A$1:$E$***,"商品No",検索条件!A1:C2)」と入力します。
ここでいう「***」というのは「2」で指定した最終行の番号になります。

5.次に「分類-avの1行目:「=DGET([【Bファイル】]Sheet1!$A$1:$E$***,"分類No",検索条件!A1:C2)」
    「商品名」の1行目:「=DGET([【Bファイル】]Sheet1!$A$1:$E$***,"分類No",検索条件!A1:C2)」
    「コード」の1行目:「=VLOOKUP(C2,[【Bファイル】]Sheet1!$C$1:$E$***,2,FALSE)」
    「金額」 の1行目:「=VLOOKUP(C2,[【Bファイル】]Sheet1!$C$1:$E$***,3,FALSE)」
  と入力します。

これで複数の抽出ができます。