エクセル関数[Excel関数]を1から解説しています。

複数抽出できるエクセルの関数は?

以下のような表が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行だけではなく、複数行あると思うので、複数抽出する方法も知りたい場合があるでしょう。

このような場合に簡単に解決してくれる関数があります。



ちょっとだけ説明は複雑だと思いますが、以下の関数を参考にしてみてください。DGET関数という関数を使います。

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

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

と入力しておきます。「Aファイル」の商品a{分類bェ検索条件だからですね。

このとき、Aファイルの3行目、4行目も同じように、A3セル、A4セルに入力してください。

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

4.検索結果を表示させたいファイルのシートに移って、「商品avを表示の1行目のところに、以下のように入力してください。

「=DGET([【Bファイル】]Sheet1!$A$1:$E$***,"商品No",検索条件!A1:B4)」

※ここの「***」には、上記2.で指定した最終行の番号を入れます。例の場合でしたら、4を指定すれば大丈夫です。

5.次に、同じようにして、以下を入力します。

「分類avの1行目:「=DGET([【Bファイル】]Sheet1!$A$1:$E$***,"分類No",検索条件!A1:B4)」

「名称」の1行目:「=DGET([【Bファイル】]Sheet1!$A$1:$E$***,"名称",検索条件!A1:B4)」

「コード」の1行目:「=VLOOKUP(C2,[【Bファイル】]Sheet1!$C$1:$E$***,2,FALSE)」

「金額」 の1行目:「=VLOOKUP(C2,[【Bファイル】]Sheet1!$C$1:$E$***,3,FALSE)」

※これらの「***」も、上記3.と同じです。

これで試してみてくださいね。