複数の条件で検索価値
テーブル内の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] `
式。
複数基準ルックアップの一般式
=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つのルックアップ範囲があります。
この数式をセルI4に入力してEnterキーを押します。
=INDEX(E2:E16,MATCH(1,INDEX((I1=A2:A16)(I2=B2:B16)(I3=C2:C16),0,1),0))
仕組み:
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関数を使用する方法]