image

この記事では、ExcelのINDEX-MATCH-MATCH関数を使用して2Dテーブルの値を検索する方法を学習します。

シナリオ:

数百の列を持つテーブルから複数のルックアップを実行する必要があると想定します。このような場合、ルックアップごとに異なる式を使用すると、時間がかかりすぎます。提供されたヘッダーで検索できる動的ルックアップ式を作成するのはどうですか。はい、できます。

この式は、INDEX MATCH MATCH式、または2Dルックアップ式と呼ばれます。

問題を解決する方法は?

式を最初に理解するには、次の関数について少し修正する必要があります。 link:/ lookup-formulas-excel-index-function [INDEX function]

link:/ lookup-formulas-excel-match-function [MATCH function]

`link:/ lookup-formulas-excel-index-function [INDEX function]`は、配列内の指定されたインデックスの値を返します。

`link:/ lookup-formulas-excel-match-function [MATCH function]`は、配列(1次元配列)内の値の最初の出現のインデックスを返します。

次に、上記の関数を使用して式を作成します。一致関数は、行ヘッダーフィールドにルックアップ値1のインデックスを返します。また、別のMATCH関数は、列ヘッダーフィールドにルックアップ値2のインデックスを返します。これで、インデックス番号がINDEX関数に入力され、2Dテーブルデータからルックアップ値の下の値が取得されます。

一般式:

= INDEX ( data , MATCH ( lookup_value1, row_headers, 0 , MATCH ( lookup_value2, column_headers, 0 ) ) )

データ:ヘッダーのないテーブル内の値の配列lookup_value1:row_headerでルックアップする値。

row_headers:検索する行インデックス配列。

lookup_value1:column_headerでルックアップする値。

column_headers:検索する列インデックス配列。

例:

上記のステートメントは、理解するのが複雑になる可能性があります。例の式を使用してこれを理解しましょう。ここに、科目リストを使用して学生が取得したスコアのリストがあります。以下のスナップショットに示すように、特定の学生(ゲイリー)と科目(社会科)のスコアを見つける必要があります。

image

Student value1はRow_header配列と一致する必要があり、Subjectvalue2はColumn_header配列と一致する必要があります。

J6セルの数式を使用します:

= INDEX ( table , MATCH ( J5, row, 0 , MATCH ( J4, column, 0 ) ) )

説明:

MATCH関数は、J4セルのStudent値を行ヘッダー配列と照合し、その位置3 *を数値として返します。

MATCH関数は、J5セルのSubject値を列ヘッダー配列と照合し、その位置4 *を数値として返します。

  • INDEX関数は、行と列のインデックス番号を取得し、テーブルデータを検索して、一致した値を返します。

  • MATCHタイプの引数は0に固定されています。数式が完全一致を抽出するためです。

image

ここで、数式の値はセル参照として指定され、row_header、table、column_headerは名前付き範囲として指定されます。

上のスナップショットでわかるように、Subject SocialStudiesの学生Garyによって取得されたスコアは36です。

これは、式が正常に機能することを証明します。疑問がある場合は、以下の注記を参照してください。

次に、行ヘッダーと列ヘッダーを数値として使用した近似一致を使用します。テキスト値に適用する方法がないため、近似一致は数値のみを取ります。ここでは、製品の高さと幅に応じた値の価格があります。

以下のスナップショットに示すように、特定の高さ(34)と幅(21)の価格を見つける必要があります。

image

高さの値1はRow_header配列と一致する必要があり、幅の値2はColumn_header配列と一致する必要があります。

K6セルの数式を使用します:

= INDEX (data , MATCH (K4, Height, 1 , MATCH ( K5, Width, 1 ) ) )

説明:

MATCH関数は、K4セルのHeight値を行ヘッダー配列と照合し、その位置3 *を数値として返します。

MATCH関数は、K5セルのWidth値を列ヘッダー配列と照合し、その位置2 *を数値として返します。

  • INDEX関数は、行と列のインデックス番号を取得し、テーブルデータを検索して、一致した値を返します。

  • MATCHタイプの引数は1に固定されています。数式が近似一致を抽出するためです。

image

ここで、数式の値はセル参照として指定され、row_header、data、column_headerは、上記のスナップショットで説明したように名前付き範囲として指定されています。

上のスナップショットでわかるように、高さ(34)と幅(21)で取得した価格は53.10です。これは、式が正常に機能することを証明します。疑問がある場合は、以下の注を参照してください。

注:

。 MATCH関数のルックアップ配列引数がデータのヘッダーフィールドである2D配列の場合、関数は#NAエラーを返します。

。 MATCH関数の一致タイプ引数が0であるため、この関数は正確な値と一致します。

。ルックアップ値は、セル参照として指定することも、数式の引用記号( “)を引数として直接使用することもできます。

ExcelのINDEX&MATCH関数を使用して2Dテーブルでルックアップを使用する方法を理解していただければ幸いです。ここにExcelルックアップ値の記事があります。コメントボックスに以下のクエリを自由に記入してください。

私たちは確かにあなたを助けます。

関連記事

link:/ lookup-formulas-use-index-and-match-to-lookup-value [INDEXとMATCHを使用して値を検索する]:INDEX&MATCH関数を使用して、必要に応じて値を検索します。

` link:/ summary-sum-range-with-index-in-excel [ExcelのINDEXを使用したSUM範囲] `:INDEX関数を使用して、必要に応じて値のSUMを検索します。

` link:/ counting- excel-sum-function [ExcelでのSUM関数の使用方法] `:例で説明されているSUM関数を使用して数値のSUMを検索します。

` link:/ lookup-formulas-excel-index-function [How INDEX関数を使用するにはExcelで] `:例で説明したINDEX関数を使用して配列のINDEXを検索します。

link:/ lookup-formulas-excel-match-function [ExcelでMATCH関数を使用する方法]:例で説明されているMATCH関数内のINDEX値を使用して、配列内のMATCHを検索します。

link:/ lookup-formulas-excel-lookup-function [ExcelでLOOKUP関数を使用する方法]:例で説明されているLOOKUP関数を使用して配列内のルックアップ値を検索します。

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelでVLOOKUP関数を使用する方法]:例で説明されているVLOOKUP関数を使用して配列内のルックアップ値を検索します。

link:/ lookup-formulas-hlookup-function-in-excel [ExcelでHLOOKUP関数を使用する方法]:例で説明されているHLOOKUP関数を使用して、配列内のルックアップ値を検索します。

人気の記事

link:/ excel-generals-how-to-edit-a-dropdown-list-in-microsoft-excel [ドロップダウンリストを編集する]

link:/ excel-range-name-absolute-reference-in-excel [Excelでの絶対参照]

link:/ Tips-conditional-formatting-with-if-statement [条件付き書式の場合]

link:/ lookup-formulas-vlookup-by-date-in-excel [Vlookup by date]

link:/ excel-text-editing-and-format-join-first-and-last-name-in-excel [Excelで姓名を結合]