エクセルで特定の値を検索し抽出する際、XLOOKUP関数とINDEX+MATCH関数は非常に便利な関数です。
しかし、実際に「どっちを使ったほうがいいの?」と迷いますよね。
この記事では、XLOOKUP関数とINDEX+MATCH関数の基本から具体例を用いて、それぞれの違いを解説します。
- XLOOKUP関数の使い方を知りたい
- INDEX+MATCH関数の基礎を学びたい
- XLOOKUP関数とINDEX+MATCH関数の違いを知りたい
この度、公式LINEを作成しました!
公式LINE追加で、Excelのショートカットキー(一覧)を無料でプレゼントしています。ぜひ友達追加をお願いします!
それでは本編スタート!
XLOOKUP関数とINDEX+MATCH関数の概要
XLOOKUP関数とINDEX+MATCH関数は、値を検索してデータを取得する際に使われる関数です。
ここでは、それぞれの関数について簡単に説明します。
XLOOKUP関数とは?
XLOOKUP関数は、指定した範囲内から値を検索して関連する値を返す関数です。
この関数は、上下左右の検索が可能で、VLOOKUP関数の代替として広く利用されています。
さらにXLOOKUP関数は、エラー時の対処設定や部分一致の検索もあり、VLOOKUP関数の上位互換となります。
INDEX+MATCH関数とは?
INDEX関数とMATCH関数を組み合わせることで、複雑なデータ検索ができます。
- INDEX関数は指定した配列や範囲内のセル値を取得できる関数
- MATCH関数は指定した値と一致する範囲内の最初のセル位置を返す
※MATCH関数の最初の位置とは「行番号または列番号」のこと
この組み合わせは、XLOOKUP関数が登場する前から使われていた方法です。
XLOOKUPとINDEX+MATCHの使い方
こちらの章ではXLOOKUP関数とINDEX+MATCH関数の基本的な使い方を理解しましょう!
それぞれの理解することで、適切な状況で使用することができます。
XLOOKUP関数の基本構文と使用例
XLOOKUP関数の基本構文は以下の通りです。
=XLOOKUP(検索値, 検索範囲, 戻り範囲, [見つからない場合], [一致モード], [検索モード])
引数 | 説明 |
検索値 | 探したい値 |
検索範囲 | 探したい値が含まれる範囲 |
戻り範囲 | 探したい値が見つかった場合、返す範囲を指定 |
[見つからない場合] | 値が見つからない場合に返したいテキストがあれば指定 |
[一致モード] | 一致の種類を指定 ※デフォルトは完全一致[0] |
[検索モード] | 検索の順序を指定 ※基本的にはデフォルトの先頭から検索でOK |
※[見つからない場合],[一致モード],[検索モード]は省略可能です。
XLOOKUP関数の簡単な使用例①
例えば、A列に名前、B列に売上金額が入力されている表から、D2セルに名前を入力するとE2セルに売り上げ金額紐づくようにする場合は以下のようになります。
=XLOOKUP(D2,A2:A6,B2:B6)
XLOOKUP関数の簡単な使用例②
検索値より左側にある情報を取得する場合、XLOOKUP関数の式は以下になります。
=XLOOKUP(A2,B5:B10,A5:A10)
従来のVLOOKUP関数では、検索値より左側にあるデータを抽出できなかったが、XLOOKUP関数は「検索範囲」と「戻り範囲(返したい範囲)」が分かれているため可能となります。
INDEX+MATCH関数の基本構文と使用例
INDEX+MATCH関数の基本構文は以下の通りです。
=INDEX(配列, MATCH(検索値, 検索範囲, [比較の方法]))
引数 | 説明 |
配列 | 返したい値の範囲 |
検索値 | 探したい値 |
検索範囲 | 探す値が含まれる範囲 |
比較の方法 | 探す順番(省略可能でデフォルトは昇順) |
INDEX+MATCH関数の簡単な使用例①
例えば、A4からC10セルに名前・売り上げ・利益が入力されている表から、名前「パンダ」に対応する売上と利益を取得する場合は、以下のようになります。
=INDEX($B$5:$C$10,MATCH($A$2,$A$5:$A$10,0),MATCH(B1,$B$4:$C$4,0))
=INDEX($B$5:$C$10,MATCH($A$2,$A$5:$A$10,0),MATCH(C1,$B$4:$C$4,0))
INDEX+MATCH関数の簡単な使用例②
INDEX+MATCH関数の使用例②では、A2(名前)とB2(月)に入力された情報の「売り上げ・利益」を紐づけていきます。
要領は先ほどと同じですが、検索値の条件が2つになるので「&
」を使用することになります。
今回は少し複雑なので動画でご確認をお願いします。
=INDEX($C$5:$D$10,MATCH($A$2&$B$2,$A$5:$A$10&$B$5:$B$10,0),MATCH(C1,$C$4:$D$4,0))
=INDEX($C$5:$D$10,MATCH($A$2&$B$2,$A$5:$A$10&$B$5:$B$10,0),MATCH(D1,$C$4:$D$4,0))
XLOOKUP関数とINDEX+MATCH関数の違い
XLOOKUP関数とINDEX+MATCH関数は、どちらも検索とデータの取得する点では同じです。
では、これらの違いはどこにあるでしょうか?
ここでは、検索範囲の柔軟性、エラー処理、可読性とシンプルさの観点から、これらの関数の違いを詳しく解説していきます。
検索範囲の柔軟性
XLOOKUP関数は、垂直または水平方向に検索が可能です。
一方、INDEX+MATCH関数は、基本的には単一の方向にのみ検索を行います。
しかし、MATCH関数で縦横の検索を行うことで、柔軟な検索範囲を設置することが可能です。
結論、それぞれ検索範囲の柔軟性はあると言えるでしょう。
結果がエラーの場合の対処法
検索値が見つからない場合などは「#N/A」エラーが返されます。
この時「#N/A」ではなく、空白やハイフンなどを返す方法として、IFERROR関数があります。
INDEX+MATCH関数では、IFERROR関数を使用する必要があります。
ですが、XLOOKUP関数には、検索結果が見つからない場合に返す値を指定することができます!
例えば、「=XLOOKUP(A2,B5:B10,A5:A10,"-")
」など。
これにより、エラー処理の観点で見るとXLOOKUP関数がやや有利でしょうか。
ですが、IFERROR関数も簡単に使えるので、一度ご自身でも使ってみてください。
数式の可読性とシンプルさ
XLOOKUP関数は一つの関数で完結するので、数式がシンプルになり可読性が高くなるでしょう。
一方、INDEX+MATCH関数は二つの関数を組み合わせるため、数式が複雑になりがちです。
ただし、INDEX+MATCH関数も慣れてしまえば柔軟な検索が可能になります。特定の状況では有利に働くこともあります。
結論、簡単なデータ検索の場合はムリにINDEX+MATCH関数を使わなくていい
ですが、INDEX関数とMATCH関数は古いバージョンのエクセルでも使用できるため、組織内のバージョンにとっては、INDEX+MATCH関数が適している場合もあります。
結論、どちらを使うべきか?
XLOOKUP関数とINDEX+MATCH関数には、それぞれの強みがあります。
業務や環境によって使い分けが必要となります。
こちらの章では、具体的な状況に応じた選択方法を解説します。
XLOOKUP関数が適している場合
XLOOKUP関数は、数式の可読性が高く、複数の方向に対する検索が必要な場合に適しています。
また、エラー処理が簡単に行えるため、エラーが発生しやすい状況でも使えるでしょう。
さらに、XLOOKUPは最新のバージョンに対応しているため、新しい機能を活用したい場合にも適しています。
逆を言えば、バージョンによっては使用できないので注意が必要です。
INDEX+MATCH関数が適している場合
INDEX+MATCH関数は、古いバージョンでも使用でき、柔軟な検索が可能です。
特に、複雑な条件での検索や、特定の範囲からのデータ抽出が必要な場合には有効です。
また、XLOOKUP関数がないバージョンでも使用できるので、互換性を考慮する際には便利です。
最新のバージョンの場合でも、部署の年齢層がバラバラの場合は「新しい関数を使いたくない」という方も多いでしょう。
なので、働く環境にも注意し、効率化を目指していきましょう!
まとめ
ここまで、XLOOKUP関数とINDEX+MATCH関数の基礎とそれぞれの違いについてご紹介しました。
それぞれの関数を使いこなすことで、エクセルでのデータ検索が柔軟かつ効率的になるでしょう。
ちなみに、個人的には「XLOOKUP関数」で完結できる内容であれば、XLOOKUP関数。もっと複雑の場合や環境によって合わせるなら「INDEX+MATCH関数」でいいかなと思います。
この記事はこれで以上となります。最後まで読んでいただきありがとうございました!