VLOOKUPでは取り出せない左側の列の値を取り出す方法(XLOOKUP不使用)

ソフトウェア

VLOOKUP関数は検索値を検索範囲の一番左の列から検索し、
一致するものがあった場合に同じ行の右側(2,3...)の値を取り出すことが出来るが、
必ずしも検索値よりも右側の値だけを取り出すとは限らない。
Microsoft 365版のExcelであればXLOOKUP関数でこれを実現できるが、
あえてXLOOKUP関数を使わずに実現させるための手順を載せておく。

 

以下のようなデータがあった場合、
※シート名「DB」、A列「氏名」、B列「住所」、C列「ID」とする。

>VLOOKUP関数では「氏名」から「住所」および「ID」を取り出すことができる。
>VLOOKUP関数では「住所」から「ID」を取り出すことができる。
>VLOOKUP関数では「住所」から「氏名」を取り出すことができない。
>VLOOKUP関数では「ID」から「氏名」および「住所」を取り出すことができない。

  • 「住所」から「氏名」を取り出す方法
    →MATCH関数とINDIRECT関数を併用する

    INDIRECT("DB!A"&MATCH(A12,DB!B:B,0))
    ※MATCH関数で住所が「DBシートのB列(住所)と一致する行番号を取得し、
    その行番号をINDIRECT関数の引数として指定する。
  • 「ID」から「氏名」を取り出す方法
    →MATCH関数とINDIRECT関数を併用する

    INDIRECT("DB!A"&MATCH(A12,DB!C:C,0))
    ※MATCH関数で住所が「DBシートのB列(住所)と一致する行番号を取得し、
    その行番号をINDIRECT関数の引数として指定する。

ただし、検索範囲がテーブルの場合は、
MATCH関数で算出される値が1ずれることを注意する。

(1列目が列名、2列目以降から1,2,3とカウントされる。)

タイトルとURLをコピーしました