ExcelのXLOOKUPとINDEX-MATCHの比較 (すべての可能な比較)

  • これを共有
Hugh West

今日は、その比較分析をしてみます。 XLOOKUP INDEX-MATCH機能 において エクセル 以前のバージョンでは エクセル を使用していました。 HLOOKUP は、その ブイルック であり、また INDEX-MATCH のような関数で、セルの範囲から特定の値を探すことができました。 オフィス365 という新しいダイナミックな関数が用意されています。 XLOOKUP 関数を使って、同様の操作をより高度に行うことができます。 今回は、広く使われている関数である XLOOKUP とのことです。 INDEX-MATCH .

練習用ワークブックをダウンロードする

このサンプルファイルを入手し、理解を深めてください。

XLOOKUP関数とINDEX-MATCH関数の比較.xlsx

XLOOKUP関数の紹介

があります。 XLOOKUP 関数は,セルや配列の範囲から特定の値を見つけ,それに最初にマッチするものを返します。 また,完全にマッチするものがない場合は,最も近いもの,あるいは近似的なものを表示します。

構文です。

=XLOOKUP(lookup_value,lookup_array,return_array,[if_not_found],[match_mode],[search_mode])

論拠となる。

  • ルックアップ値 : 範囲内の特定の列で検索している値です。
  • ルックアップ_配列 を検索する配列です。 ルックアップバリュー 行と列の両方が可能です。
  • Return_array。 の対応する値の元となる列である。 ルックアップバリュー が返されます。

オプションの引数です。

  • 見つからなかった場合 の場合に返される値である。 ルックアップ_アレイ はlookup_valueを持っていない。
  • マッチモード の一致の種類を示す数値である。 ルックアップバリュー この引数はオプションで、4つの値を指定できます。
  1. というとき 0 , XLOOKUP は完全一致で検索します(Default)。
  2. というとき 1 , XLOOKUP は、まず完全に一致するものを探します。 完全に一致しない場合は、次に小さい値にマッチします。
  3. というとき -1 , XLOOKUP は、まず完全に一致するものを探します。 完全に一致しない場合は、次に大きな値にマッチします。
  4. というとき 2 , XLOOKUP は、まずワイルドカードを使用して近似一致を検索します (文字列検索値のみに適用されます)。
  • 検索モード lookup_array に対する検索操作の種類を示す数値。 これもオプションであり、4つの値を持つことができる。
  1. もし、それが 1 , XLOOKUP で上から下へ検索します。 ルックアップ_アレイ (初期設定)。
  2. というとき -1 , XLOOKUP で下から上へ検索します。
  3. もし、それが 2 , XLOOKUP は、昇順でバイナリサーチを行います。
  4. というとき -2 , XLOOKUP は、降順でバイナリ検索を行います。

INDEX-MATCH関数の紹介

という組み合わせで INDEX-MATCH 関数は、指定された場所から値を取得し、ソースの範囲と一致させるために使用されます。

構文です。

=INDEX(配列,MATCH(lookup_value,lookup_array,match_type),no_of_column)

論拠となる。

INDEX機能の場合。

  • アレイ : 値を取り出したいセルの範囲です。
  • MATCH(lookup_value,lookup_array,match_type)です。 が存在する範囲の行番号である。 ルックアップバリュー の特定の値にマッチします。 ルックアップ_アレイ .
  • No_of_columnです。 に対応する値を返したい配列の列の番号である。 ルックアップバリュー .

MATCH 機能の場合。

  • Lookup_value。 私たちが求めているのは、その価値なのです。
  • Lookup_array。 を検索している配列です。 ルックアップバリュー 行と列の両方が可能です。
  • Match_typeです。 マッチの種類を表す整数。 オプション。
  1. というとき -1 , MATCH は,まず完全に一致するものを探します。 完全に一致しない場合は,次に大きな値(Default)を探します((1)とは逆です)。 XLOOKUP ).

ただし、その条件は ルックアップ_アレイ は昇順でソートされている必要があります。 そうでない場合はエラーが表示されます。

  1. というとき 1 , MATCH も,まず完全に一致するものを探します。 完全に一致しない場合は,その次に小さい値を探します( XLOOKUP ).

ただし、その条件は ルックアップ_アレイ は、今回は降順でソートされている必要があります。 そうでない場合は、エラーが表示されます。

  1. というとき 0 , MATCH は、完全に一致するものを検索します。

続きを読む エクセルで特定のデータを選択する方法(6つの方法)

7 XLOOKUP関数とINDEX-MATCH関数の使い方の比較

さて、数式を分解したところで、2つの関数の類似点と非類似点について説明します。 本論に入る前に、便宜上、主要なポイントを表にしています。

議論のポイント 類似性/非類似性 説明
カラムルックアップ_配列 類似性 どちらもlookup_arrayとしてカラムをサポートしています。
行のlookup_array 類似性 どちらも、lookup_arrayとして行をサポートしています。
lookup_valueのマッチングがない 非類似度 XLOOKUPには、lookup_valueのマッチングを行わないというデフォルトの設定オプションがあります。 しかし、INDEX-MATCHにはそれがありません。
おおよその一致 部分的な類似性 XLOOKUPは、完全に一致する値がない場合に、次に小さい値または大きい値を見つけることができます。 INDEX-MATCHもそうですが、lookup_arrayは昇順または降順でソートされている必要があります。
ワイルドカードのマッチング 類似性 どちらもWildcardsのマッチングに対応しています。
複数値のマッチング 部分的な類似性 XLOOKUPは複数の値が一致する場合、最初か最後の値を見つけることができます。 しかし、INDEX-MATCHは一致した最初の値しか返せません。
アレイ式 類似性 どちらも配列式に対応しています。

1.XLOOKUPとINDEX-MATCHでカラムの値を検索する。

この点では、2つの機能には共通点があります。 に対して XLOOKUP とのことです。 INDEX-MATCH ということで、lookup_arrayは両方の関数のカラムになることができます。 ここでは、正確な 物理のマーク での学生名の C エルエフファイブ , ジェニファー・マーロ で上から下まで探したかったのです。 生徒名 列を作成し、" "を返します。 Not Found " と表示され、一致するものがない場合に表示されます。

  • について XLOOKUP の式を適用してください。 セルG5 .
=XLOOKUP(F5,C5:C16,D5:D16,"Not Found",0,1)

  • について INDEX-MATCH で、この式を使います。 セルG5 .
=index(b5:d16,match(f5,c5:c16,0),3)

続きを読む Excelで異なる配列から複数の条件をマッチングさせる方法

2.XLOOKUPとINDEX-MATCHで行の値を検索する。

この点でも、2つの機能には共通点があります。 XLOOKUP とのことです。 INDEX-MATCH は、その ルックアップ_アレイ は,両方の関数の行にすることもできます. たとえば,新しいデータセットに IDs , 名称 そして 物理のマーク グレード .

の数がわからない、非常に広いデータセットであることを少し考えてみましょう。 グレード の列があります。 そして、特定の生徒の成績を知るために、その生徒の ヘディング列(B4:E4) をlookup_arrayとして、". グレード " としています。 ルックアップバリュー の両方を使って実現できます。 XLOOKUP とのことです。 INDEX-MATCH .

  • のグレードを調べるには 3年生 は、その XLOOKUP の式はこのようになります。 セルG5 .
=XLOOKUP("Grade",B4:E4,B7:E7, "Not Found",0,1)

  • この場合 INDEX-MATCH の数式になります。
=INDEX(B5:E16,3,MATCH("Grade",B4:E4,0))

3.一致しない場合のXLOOKUPとINDEX-MATCH

この点で、2つの関数は似て非なるものです。 lookup_value が ルックアップ_アレイ で返す固定値を設定することができます。 XLOOKUP そのためには、その値を if_not_found の引数には、そのようなオプションはありません。 INDEX-MATCH エラーを返します。 IFERROR関数 を外部に出力してエラーを処理する。 与えられたデータセットにおいて、そのデータセットに含まれる ID100の生徒名 .

  • これには、以下を使用します。 XLOOKUP 練り込み セルG5 .
=XLOOKUP(100,B5:B16,C5:C16,"Not Found",0,1)

  • 一方、これを応用して INDEX-MATCH の式で表されます。
=INDEX(B5:E16,MATCH(100,B5:B16,0),2)

  • エラーを返しますので、その場合は イフエラー 関数の外側でこのエラーを処理します。
=IFERROR(INDEX(B5:E16,MATCH(100,B5:B16,0),2), "Not Found")

類似の読み物

  • Excel INDEX MATCHで1つのセルに複数の値を返す
  • 複数の値を水平に返すExcelのINDEX-MATCH式
  • ExcelでINDEX-MATCH式を使用して、複数の結果を生成する方法
  • [修正しました!】ExcelでINDEX MATCHが正しい値を返さない(5つの理由)
  • ExcelでVLOOKUPの代わりにINDEX MATCHを使用する方法(3つの方法)

4.近似一致の場合のXLOOKUPとINDEX-MATCH

この点では、2つの機能に一部共通点があります。 XLOOKUP 関数を使用した場合 ルックアップバリュー のどの値にも一致しません。 ルックアップ_アレイ を使えば,次に小さい値や大きい値を返すように数式を修正することができます。 引数として マッチタイプ まで -1 に設定すると、次の小さい値が必要になります。 1 は、次の大きな値が必要な場合。

例えば、マークがある学生を探し出し 50 または次の大きなマーク

  • 値を求めるには、次のように適用します。 XLOOKUP の式で表されます。
=XLOOKUP(50,D5:D16,C5:C16,"Not Found",1,1)

  • ご覧のように、マークがある学生はいません。 50 だから、その直後が表示されているのです。 50 , 51 デズモンド・ヘイズ .

にも同じオプションがあります。 INDEX-MATCH しかし、次の大きな値を取得するためには、lookup_array を降順でソートする必要があります。 さもなければ、エラーが返されます。 また、次の小さな値を取得するためには、昇順でソートしなければなりません。

  • まず、この数式を セルG5 .
=INDEX(B5:E16,MATCH(50,D5:D16,-1),2)

  • その結果、表示されているのは #該当なし のエラーが発生しました。
  • したがって、ソートしてください。 セル範囲 D5:D16 を昇順に並べると、正しい値が得られます。

特記事項 での XLOOKUP 関数を使用します。 -1 は次の小さい値に対して動作しますが INDEX-MATCH , -1 は次の大きな値に対して動作します。 同様に XLOOKUP 関数では、1が次に大きな値で動作しますが、INDEX-MATCHでは、1が動作します。 1 は、次の小さい値に対して動作します。

続きを読む INDEXとMatchを使った部分一致の方法(2通り)

5.ワイルドカードのマッチングを行う場合のXLOOKUPとINDEX-MATCH

この点では、2つの機能に共通点があります。 XLOOKUP とのことです。 INDEX-MATCH は、どちらもサポートしています。 ワイルドカード を持つ学生を探し出します。 マーロ 「を2つ目の名前として、以下の手順で見てみましょう。 XLOOKUP INDEX-MATCH を比較することができます。

  • まず、これを適用します。 XLOOKUP 練り込み セルG5 を出力させる。
=XLOOKUP("*Marlo*",C5:C16,C5:C16,"Not Found",2,1)

でワイルドカードを使用するには XLOOKUP を設定する必要があります。 マッチタイプ 宛がう 2 そうでない場合は、動作しません。

  • 一方 INDEX-MATCH を使えば、同じ課題を達成することができます。
=INDEX(B5:E16,MATCH("*Marlo*",C5:C16,0),2)

続きを読む Excelでワイルドカードを使用したINDEX MATCHの複数条件 (完全ガイド)

6.XLOOKUPとINDEX-MATCH 複数の値がルックアップ値と一致する場合

この例では XLOOKUP INDEX-MATCH この点でも,2つの関数には部分的な類似性がある。 XLOOKUP とのことです。 INDEX-MATCH に複数の値がある場合は,どちらも1つの値だけを返します。 ルックアップ_アレイ と一致します。 ルックアップバリュー .しかし、その中で XLOOKUP 関数では、最初にマッチした値と最後にマッチした値のどちらかを取得するように検索を変更することができます。 最初にマッチした値を取得するためには 検索タイプ 宛がう 1 そして,最後にマッチした値を取得するために 検索タイプ への対応 -1 しかし INDEX-MATCH を選択すると、最初にマッチした値のみが取得されます。

  • を取得した最初の学生を取得するために 100 の場合、これを使用することができます。 XLOOKUP にゅうしょく セルG5 .
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,1)

  • とともに、最後の生徒を手に入れることができます。 100 これで XLOOKUP の式で表されます。
=XLOOKUP(100,D5:D16,C5:C16,"Not Found",0,-1)

  • 逆に、これにマッチする最初の値だけを取得します。 INDEX-MATCH の式で表されます。
=INDEX(B5:E16,MATCH(100,D5:D16,0),2)

7.複数のルックアップ値を持つ場合のXLOOKUPとINDEX-MATCH

この例では、デモを行います。 XLOOKUP INDEX-MATCH この点では,両者には共通点がある。 ルックアップバリュー (配列式)を使用します。

  • については XLOOKUP 関数を使用する場合は、以下の計算式で動作します。
=XLOOKUP(G5:G8,B5:B16,E5:E16,"Not Found",0,1)

  • では INDEX-MATCH また、以下の機能も使用できます。
=INDEX(B5:E16,MATCH(G5:G8,B5:B16,0),4)

XLOOKUP関数のメリット・デメリット

を使うことには、一定のメリットとデメリットがあります。 XLOOKUP それでは、簡単にご紹介しましょう。

メリット

  • マッチングしない場合のデフォルト値を設定する。
  • ソートせずに近似一致の検索が可能 ルックアップ_アレイ .
  • の最初のセルと最後のセルの両方から検索できるようにする。 ルックアップ_アレイ .

デメリット

  • よりも遅く動作します。 INDEX-MATCH 関数を使用します。
  • で利用可能です。 オフィス365 だけです。

INDEX-MATCH関数のメリット・デメリット

があります。 INDEX-MATCH は、以下のような長所と短所も手に入れました。

メリット

  • よりも高速に動作します。 XLOOKUP 関数を使用します。
  • 旧バージョンで利用可能 エクセル のバージョンがあります。

デメリット

  • 一致するものがない場合のエラーに対応できない。
  • を必要とします。 ルックアップ_アレイ を、近似的に一致するように並べ替えます。
  • 複数の値が一致する場合、最初の値のみを返す。 ルックアップバリュー .

結論

最後に、長かった記事も終盤に差し掛かりました。 ここでは、比較分析を試みてみました。 XLOOKUP 対して INDEX-MATCH この件に関するご意見をお聞かせください。 フォローする エクセルウィキ をクリックするとチュートリアルが表示されます。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。