メインコンテンツへスキップ

複数列にわたるINDEXとMATCH

Author: Amanda Li Last Modified: 2025-08-06

複数列にわたって値を照合して検索するには、MMULTTRANSPOSEおよびCOLUMNを組み合わせた配列数式を使用した INDEXおよびMATCH関数が役立ちます。

index match multiple columns 1

複数列にわたって値を照合して検索するにはどうすればよいですか?

上記の表に示されているように、各生徒に対応するクラスを入力する場合、情報が複数列にわたってリストされている場合、まずMMULT、TRANSPOSE、COLUMN関数のトリックを使用して行列配列を生成できます。その後、MATCH関数は検索値の位置を提供し、INDEXに渡されて配列内の目的の値を取得します。

汎用構文

=INDEX(返却範囲,(MATCH(1,MMULT(--(検索範囲=検索値),TRANSPOSE(COLUMN(検索範囲)^0)),0)))

√ 注: これは配列数式であり、Ctrl + Shift + Enterで入力する必要があります。

  • 返却範囲: 数式がクラス情報を返す範囲。ここではクラス範囲を指します。
  • 検索値: 数式が対応するクラス情報を検索するために使用する値。ここでは指定された名前を指します。
  • 検索範囲: 検索値 がリストされているセルの範囲; 検索値 と比較される値を持つ範囲。ここでは名前の範囲を指します。
  • 一致タイプ 0: MATCH関数に、検索値と完全に等しい最初の値を見つけるように強制します。

ジミーのクラスを見つけるには、次の数式をセルH5にコピーまたは入力し、結果を得るためにCtrl + Shift + Enterを押してください:

=INDEX($B$5:$B$7,(MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLUMN($C$5:$E$7)^0)),0)))

√ 注: 上記のドル記号($)は絶対参照を示しており、数式を他のセルに移動またはコピーしても、数式内の名前やクラス範囲は変更されません。ただし、検索値を表すセル参照にはドル記号を追加しないでください。他のセルにコピーする際に相対参照として扱うためです。数式を入力後、フィルハンドルを下にドラッグして、数式を下のセルに適用します。

index match multiple columns 2

数式の説明

=INDEX($B$5:$B$7,(MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLUMN($C$5:$E$7)^0)),0)))

  • --($C$5:$E$7=G5): このセグメントは、範囲内の各値を確認します。 $C$5:$E$7 それらがセルG5の値と等しいかどうかをチェックし、次のようなTRUEおよびFALSE配列を生成します:
    {TRUE,FALSE,FALSE;FALSE,FALSE,FALSE;FALSE,FALSE,FALSE}.
    二重の負符号は、TRUEおよびFALSEを1および0に変換し、次のような配列を生成します:
    {1,0,0;0,0,0;0,0,0}.
  • COLUMN($C$5:$E$7): COLUMN関数は、範囲$C$5:$E$7の列番号を次のような配列で返します:{3,4,5}
  • TRANSPOSE(TRANSPOSE(COLUMN($C$5:$E$7)^0)^0) = TRANSPOSE(TRANSPOSE({3,4,5}^0)^0): 0乗すると、配列{3,4,5}のすべての数字が1に変換されます:{1,1,1}。TRANSPOSE関数は、列配列を次のように行配列に変換します:{1;1;1}
  • MMULT(MMULT(--($C$5:$E$7=G5),,TRANSPOSE(COLUMN($C$5:$E$7)^0))) = MMULT(MMULT({1,0,0;0,0,0;0,0,0},,{1;1;1})): MMULT関数は、2つの配列の行列積を次のように返します:{1;0;0}
  • MATCH(1,MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLUMN($C$5:$E$7)^0)),0),0) = MATCH(1,MATCH(1,{1;0;0},0),0): 一致タイプ 0は、MATCH関数に配列 {1;0;0}内で最初に一致する1の位置を返させます。その位置は1です。
  • INDEX($B$5:$B$7,(MATCH(1,MMULT(--($C$5:$E$7=G5),TRANSPOSE(COLUMN($C$5:$E$7)^0)),0))) = INDEX($B$5:$B$7,1): INDEX関数は、クラス範囲$B$5:$B$7の最初の値を返します。それはAです。

複数列にわたって値を簡単に検索するには、当社の専門的なExcelアドインであるKutools For Excelも使用できます。 ここで指示をご覧ください


関連する関数

Excel INDEX関数

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

Excel MATCH関数

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

Excel MMULT関数

Excel MMULT関数は、2つの配列の行列積を返します。配列の結果は、array1と同じ行数を持ち、array2と同じ列数を持ちます。

Excel TRANSPOSE関数

Excel TRANSPOSE関数は、範囲または配列の方向を回転させます。例えば、水平に配置されたテーブルを垂直に、またはその逆に回転させることができます。

Excel COLUMN関数

COLUMN関数は、数式が現れる列番号、または指定された参照の列番号を返します。例えば、数式=COLUMN(BD)は56を返します。


関連する数式

INDEXとMATCHによる複数条件検索

複数の列と行キャプションを持つ大きなデータベースを扱う場合、複数の基準を満たすものを見つけるのは常に難しいものです。このような場合、INDEXとMATCH関数を使用した配列数式を使用できます。

INDEXとMATCHによる双方向検索

Excelで行と列の両方を横断して何かを検索したり、特定の行と列の交点にある値を検索したりするには、INDEXとMATCH関数の助けを借りることができます。

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

いくつかのケースでは、複数の基準に基づいて最も近いまたは概算の一致値を検索する必要があるかもしれません。INDEX、MATCH、IF関数を組み合わせることで、Excelで迅速にこれを実行できます。


最高のオフィス生産性ツール

Kutools for Excel - 群衆から一歩抜け出すためのお手伝い

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

Kutools for Excelは300以上の機能を誇り、必要なものがクリック一つで利用可能です...


Office Tab - Microsoft Office(Excel含む)でタブ形式の読み書きを可能に

  • 数十の開いている文書間を1秒で切り替え!
  • 毎日数百回のマウスクリックを減らし、マウス疲れとはおさらば!
  • 複数の文書を閲覧・編集する際の作業効率を50%向上します。
  • Chrome、Edge、Firefoxのように、Office(Excel含む)に効率的なタブをもたらします。