ホーム › 別の表から、値を持ってきたい

Excel

XLOOKUPが使えない時は、INDEXとMATCHで代わりにする

先に答え

XLOOKUPがない古いExcelでは、INDEX と MATCH を組み合わせれば、同じことができます。VLOOKUPが苦手な「探す列より左の値を出す」にも使えます。

確認した環境
【要記入:例 Excel 2019】
確認日
【要記入】
出典
Microsoftサポート「XLOOKUP関数」「INDEX関数」「MATCH関数」(公開前にURLを記入)

XLOOKUPは、どのExcelで使える?

XLOOKUPは、新しいバージョン(Excel 2021以降、Microsoft 365)で使える関数です。Excel 2019以前では、入力しても使えません。会社のExcelが古いと、人からもらったファイルでエラーになることがあります。

自分のExcelで使えるかは、=XLOOKUP( と入力して、候補が出るかで分かります。

今回の例

商品コードから、商品名を出したい場合です。商品名は、コードより左にあります。

ABC
1商品名コード価格
2りんごA001120
3みかんA00280
4ぶどうA003300

VLOOKUPは、探す列より右しか出せません。ここでINDEXとMATCHの出番です。

手順:コードA002の商品名を出す

  1. 空いているセルをクリックします。
  2. 次の式を入力します。
    =INDEX($A$2:$A$4,MATCH("A002",$B$2:$B$4,0))
  3. Enterを押します。みかんと出れば成功です。

何をしている式なのか

2つの関数が、役割を分けています。

関数役割今回の結果
MATCH探したいものが、何番目にあるか調べるMATCH("A002",$B$2:$B$4,0) → 2
INDEX指定した列の、○番目の値を取り出すINDEX($A$2:$A$4,2) → みかん

つまり、「A002は2番目」と調べて、「商品名の列の2番目を出す」という流れです。

MATCH の最後の 0 は、ぴったり一致で探す指定です。VLOOKUPの FALSE と同じ意味です。

XLOOKUPとの対応

新しいExcel=XLOOKUP("A002",$B$2:$B$4,$A$2:$A$4)
古いExcel=INDEX($A$2:$A$4,MATCH("A002",$B$2:$B$4,0))

XLOOKUPの「探す列」と「出す列」を、INDEXとMATCHに振り分けると考えると分かりやすいです。

つまずきやすい3点

迷ったら、これだけ!

この形に、自分の列を当てはめてください。

=INDEX(出したい列, MATCH(探したいもの, 探す列, 0))
  • 出したい列と探す列の行数が同じ
  • MATCHの最後に 0 を付けた
  • 範囲に $ を付けた
広告