KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

INDEX および MATCH による複数条件検索

著者Amanda Li変更日

Excel スプレッドシートで多数の列と行見出しを持つ大規模なデータベースを扱う際、複数の条件を満たすデータを検索するのは常に難しいものです。そんなときは、INDEX 関数とMATCH 関数を組み合わせた配列数式が活用できます。

複数条件のインデックス一致 1

複数条件による検索を実行するには?

上記の画像に示されているように、「白色」で「ミディアムサイズ」、価格が「$18」の製品を検索するには、ブール論理を使って条件を満たす行を示す1 と0 の配列を生成できます。その後、MATCH 関数がすべての条件を満たす最初の行の位置を特定し、INDEX 関数がその行にある対応する製品 ID を取得します。製品ミディアム18

一般的な構文

=INDEX()return_range,MATCH(1,())criteria_value1=criteria_range1*criteria_value2=criteria_range2*(…),0))

※注:これは配列数式です。CtrlShiftEnterキーを押して入力してください。

  • return_range:組み合わせ数式で製品 ID を返すために使用する範囲です。ここでは、製品 ID が含まれる範囲を指します。
  • criteria_value:製品 ID の位置を特定するための条件です。ここでは、セル H3、H5、および H6 の値を指します。
  • criteria_range:これは、criteria_valuesがリストされている対応する範囲です。ここでは、色、サイズ、および価格の範囲を指します。
  • match_type 0:MATCH 関数に、lookup_value 完全に一致する最初の値を確実に見つけます。

価格が$18 の白色でミディアムサイズの製品を検索するには、以下の数式をセル H8 にコピーまたは入力し、Ctrl + Shift + Enter キーを押して結果を取得してください。ミディアム18CtrlShiftEnter

=INDEX()B5:B10,MATCH(1,(「White」 = C5:C10)*(「Medium」 = D5:D10)*(18 = E5:E10),0))「White」C5:C10「Medium」D5:D1018E5:E10

または、セル参照を使用して数式を動的にすることもできます:

=INDEX()B5:B10,MATCH(1,(h3 = C5:C10)*(H5 = D5:D10)*(H6 = E5:E10),0))h3C5:C10H5D5:D10H6E5:E10

複数条件のインデックス一致 2

数式の説明

=INDEX()B5:B10,MATCH(1,)(h3=C5:C10)*(H5=D5:D10)*(H6=E5:E10),0))

  • (h3=C5:C10)*(H5=D5:D10)*(H6=E5:E10):この数式は、セル H3 内の色を範囲 C5:C10 の各セルの色と比較し、セル H5 内のサイズを範囲 D5:D10 の各セルのサイズと比較し、セル H6 内の価格を範囲 E5:E10 の各セルの価格と比較します。初期結果は次のようになります:{TRUE;FALSE;TRUE;FALSE;TRUE;FALSE}*{FALSE;FALSE;TRUE;TRUE;TRUE;FALSE}*{FALSE;FALSE;FALSE;TRUE;TRUE;FALSE}。乗算により、TRUE および FALSE はそれぞれ1 と0 に変換されます:{1;0;1;0;1;0}*{0;0;1;1;1;0}*{0;0;0;1;1;0}。乗算後、次のような単一の配列が得られます:{0;0;0;0;1;0}. The initial result is like this:
    {TRUE;FALSE;TRUE;FALSE;TRUE;FALSE}*{FALSE;FALSE;TRUE;TRUE;TRUE;FALSE}*{FALSE;FALSE;FALSE;TRUE;TRUE;FALSE}.
    The multiplication will transform the TRUEs and FALSEs to 1s and 0s:
    {1;0;1;0;1;0}*{0;0;1;1;1;0}*{0;0;0;1;1;0}.
    After multiplication, we will have a single array like this:
    {0;0;0;0;1;0}.
  • MATCH(1,)(h3=C5:C10)*(H5=D5:D10)*(H6=E5:E10),0)=MATCH(1,)match_type が 0 のとき、MATCH 関数は完全一致を検索します。これにより、関数は配列 {0;0;0;0;1;0} 内で値が 1 となる位置を返します。その位置は 5 です。01{0;0;0;0;1;0}5
  • INDEX()B5:B10,MATCH(1,)(h3=C5:C10)*(H5=D5:D10)*(H6=E5:E10),0)) = INDEX(B5:B10INDEX 関数は、製品 ID の範囲 内の5 番目の値を返します。その値はです。5B5:B1030005

関連関数

Excel INDEX 関数

Excel の INDEX 関数は、指定された範囲または配列から、指定位置に基づいて値を返します。

Excel MATCH 関数

Excel の MATCH 関数は、指定されたセル範囲内で特定の値を検索し、その値の相対位置を返します。


関連数式

複数条件による最も近い一致値の検索

場合によっては、複数の条件に基づいて最も近い値や近似一致値を検索する必要があります。そんなときは、INDEX 関数、MATCH 関数、そして IF 関数を組み合わせることで、Excel で素早く実現できます。

INDEX および MATCH による近似一致

従業員のパフォーマンス評価、学生の成績評価、重量に基づく郵送料金の計算など、Excel で近似一致を検索する必要がある場面はさまざまです。このチュートリアルでは、目的の結果を確実に得るために、INDEX 関数と MATCH 関数を組み合わせて使う方法をわかりやすく解説します。

他のワークシートまたはブックからの検索値の範囲

ワークシート内で値を検索するために VLOOKUP 関数を使用する方法を知っている場合、他のワークシートまたはブックから値を検索することも難しくありません。このチュートリアルでは、Excel で他のワークシートから値を検索する方法を説明します。


最高の Office 生産性ツール

Kutools for Excel - あなたを群衆の中から際立たせます

🤖KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気機能検索・ハイライト・重複をマーキング    空白行を削除する    データを失うことなく列の結合またはセルを    数式を使用しない四捨五入...
スーパー VLookup複数条件    複数値    複数シート間    ファジーマッチ...
高度なドロップダウンリスト簡単なドロップダウンリスト    連動型ドロップダウンリスト    複数選択可能なドロップダウンリスト...
列マネージャー指定した数の列を追加    列の移動   非表示列の表示状態を切り替え  列を比較して同じ/異なるセルを選択...
注目の機能グリッドフォーカス    デザインビュー    強化された数式バー    ワークブックとシートマネージャーリソースライブラリ(オートテキスト)  日付ピッカー    ワークシートの統合    暗号化/セルの復号化   リストからメール送信    スーパーフィルター    特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除...)  50+チャートタイプガントチャート...)  40+実用的な数式誕生日に基づいて年齢を計算します...)  19 挿入ツールQR コードを挿入パスから画像を挿入...)  12 変換ツール単語に変換する為替レートの変換...)  7 結合と分割ツール高度な行のマージExcel セルを分割...)。。。他にも多数
Kutools を好みの言語でお使いいただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+言語以上をサポートしています!

Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…


Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします

  • 数十もの開いているドキュメントを1 秒で切り替えられます!
  • 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
  • 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
  • Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。