テーブル内の1つの一意のキーを使用して、値を簡単に検索できます。簡単に「link:/ forms-and-functions-introduction-of-vlookup-function [VLOOKUPfunction]」を使用できます。ただし、データにその一意の列がなく、値と一致するように複数の列を検索する必要がある場合、VLOOKUPは役に立ちません。

したがって、複数の基準を持つテーブルの値を検索するには、 link:/ lookup-formulas-excel-index-function [INDEX] -`link:/ lookup-formulas-excel-match-function [MATCH] `を使用します。 -`link:/ lookup-formulas-excel-index-function [INDEX] `

式。

1

複数基準ルックアップの一般式

=INDEX(lookup_range,MATCH(1,INDEX((criteria1 =range1)(criteria2=range2)(criteriaN=rangeN),0,1),0))

lookup_range:値を取得する範囲。

Criteria1、Criteria2、Criteria N:これらは、range1、range2、およびRangeNで一致させる基準です。最大270の基準(範囲ペア)を持つことができます。

Range1、range2、rangeN:これらはそれぞれの基準に一致する範囲です。

それはどのように機能しますか?見てみましょう…=====複数の基準を持つINDEXとMATCHの例ここにデータテーブルがあります。予約日、ビルダー、エリアを使用して顧客の名前を取得したいと思います。したがって、ここには3つの基準と1つのルックアップ範囲があります。

2

この数式をセルI4に入力してEnterキーを押します。

=INDEX(E2:E16,MATCH(1,INDEX((I1=A2:A16)(I2=B2:B16)(I3=C2:C16),0,1),0))

3

仕組み:

EXCELで `link:/ lookup-formulas-use-index-and-match-to-lookup-value [INDEX and MATCH function]`がどのように機能するかはすでにわかっているので、ここでは説明しません。ここで使用したトリックについて説明します。

(I1 = A2:A16)(I2 = B2:B16)(I3 = C2:C16):主要部分はこれです。このステートメントの各部分は、truefalseの配列を返します。

ブール値を乗算すると、0と1の配列が返されます。

乗算はAND演算子として機能します。すべての値が真の場合にのみ、1を返します。それ以外の場合は0(I1 = A2:A16)(I2 = B2:B16)(I3 = C2:C16)これはすべて

{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}*

{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE}*

{FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

を返します。これは

{0;0;0;0;0;0;0;1;0;0;0;0;0;0;0}

に変換されますINDEX((I1 = A2:A16)(I2 = B2:B16)(I3 = C2:C16)、0,1):INDEX関数は同じ配列を返します(\ {0; 0; 0; 0; 0; 0 ; 0; 1; 0; 0; 0; 0; 0; 0; 0})ルックアップ配列としてMATCH関数に。

MATCH(1、INDEX((I1 = A2:A16)(I2 = B2:B16)(I3 = C2:C16)、0,1):MATCH関数は配列\ {0; 0; 0; 0で1を検索します; 0; 0; 0; 1; 0; 0; 0; 0; 0; 0; 0}。そして、配列で見つかった最初の1のインデックス番号を返します。ここでは8です。

INDEX(E2: E16、MATCH(1、INDEX((I1 = A2:A16)(I2 = B2:B16)(I3 = C2:C16)、0,1)、0)):

最後に、INDEXは値を返します見つかったインデックス(8)で指定された範囲(E2:E16)から。

単純????。申し訳ありませんが、これ以上単純にすることはできません。

配列ソリューションその結果、CTRL + SHIFT + ENTERを押すと、内部のINDEX関数を削除できます。この式を記述してCTRL + SHIFTENTERを押すだけです。
=INDEX(E2:E16,MATCH(1,(I1=A2:A16)(I2=B2:B16)(I3=C2:C16),0))

の一般的な配列式複数基準ルックアップ

=INDEX(lookup_range,MATCH(1,(criteria1 =range1)(criteria2=range2)(criteriaN=rangeN),0))

式は上記の説明と同じように機能します。

できるだけ簡単に説明できるように最善を尽くしましたが、十分に明確でない場合は、以下のコメントセクション。ちなみに、エンジンがどのように機能するかを知る必要はありません。車を運転する。あなたはそれを運転する方法を知る必要があるだけです。そして、あなたはそれをよく知っています。

関連記事:

link:/ lookup-formulas-vlookup-top-5-values-with-duplicate-values-using-index-match-in-excel [ExcelでINDEX-MATCHを使用して重複する値で上位5つの値を検索する方法]

link:/ lookup-formulas-vlookup-multiple-values [Excelで複数の値をVLOOKUPする方法]

link:/ lookup-formulas-vlookup-with-dynamic-col-index [Excelで動的Colインデックスを使用してVLOOKUPする方法]

link:/ lookup-formulas-use-vlookup-from-two-or-more-lookup-tables [Excelで2つ以上のルックアップテーブルからVLOOKUPを使用する方法]

人気の記事:

link:/ keyboard-formula-shortcuts-50-excel-shortcuts-to-increase-your-productivity [生産性を高めるための50のExcelショートカット]

link:/ forms-and-functions-introduction-of-vlookup-function [ExcelでVLOOKUP関数を使用する方法]

link:/ Tips-countif-in-microsoft-excel [ExcelでCOUNTIF関数を使用する方法]

link:/ excel-formula-and-function-excel-sumif-function [ExcelでSUMIF関数を使用する方法]