複数の列にわたるINDEXとMATCH
複数の列間で照合して値を検索するには、に基づく配列数式 INDEX 及び MATCH を組み込んだ機能 MMULT, 転置 及び カラム あなたに有利になります。
複数の列を照合して値を検索するにはどうすればよいですか?
記入するには 各学生の対応するクラス 上記の表のように、 情報は複数の列にリストされています、最初にMMULT、TRANSPOSE、およびCOLUMN関数のトリックを使用して、行列配列を生成できます。 次に、MATCH関数はルックアップ値の位置を提供します。これは、配列で探している値を取得するためにINDEXに送られます。
一般的な構文
=INDEX(return_range,(MATCH(1,MMULT(--(lookup_array=lookup_value),TRANSPOSE(COLUMN(lookup_array)^0)),0)))
√注:これは、次のように入力する必要がある配列数式です。 Ctrlキー + シフト + 入力します.
- return_range: 数式がクラス情報を返す範囲。 ここでは、クラス範囲を参照します。
- 参照値: 対応するクラス情報を見つけるために式が使用した値。 ここでは、指定された名前を参照します。
- lookup_array: セルの範囲 参照値 リストされています。 と比較する値の範囲 参照値。 ここでは、名前の範囲を示します。
- match_type 0: MATCHに、に正確に等しい最初の値を見つけるように強制します。 参照値.
検索するには ジミーのクラス、セルH5に以下の数式をコピーまたは入力して、を押してください。 Ctrlキー + シフト + 入力します 結果を得るには:
= 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,(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 {}.
- 転置(COLUMN($ C $ 5:$ E $ 7)^ 0) = 転置(3,4,5 {}^ 0): 累乗を0に上げると、配列{3,4,5}のすべての数値が1:{1,1,1}に変換されます。 次に、TRANSPOSE関数は、列配列を次のように行配列に変換します。 {1; 1; 1}.
- MMULT(-($ C $ 5:$ E $ 7 = G5),転置(COLUMN($ C $ 5:$ E $ 7)^ 0)) = MMULT({1,0,0; 0,0,0; 0,0,0},{1; 1; 1}): MMULT関数は、次のようにXNUMXつの配列の行列積を返します。 {1; 0; 0}.
- MATCH(1、MMULT(-($ C $ 5:$ E $ 7 = G5),転置(COLUMN($ C $ 5:$ E $ 7)^ 0))、0) = MATCH(1、{1; 0; 0}、0): match_type 0 MATCH関数に最初の一致の位置を返すように強制します 1 配列で {1; 0; 0}、です 1.
- 索引($ B $ 5:$ B $ 7,(MATCH(1、MMULT(-($ C $ 5:$ E $ 7 = G5),転置(COLUMN($ C $ 5:$ E $ 7)^ 0))、0)))= INDEX($ B $ 5:$ B $ 7,1): INDEX関数は 1クラス範囲のst値 $ B $ 5:$ B $ 7、です A.
複数の列を照合して値を簡単に検索するには、プロのExcelアドインを使用することもできます。 Excel用のKutools. ミッションを達成するには、こちらの手順をご覧ください.
関連機能
Excel INDEX関数は、範囲または配列からの指定された位置に基づいて表示された値を返します。
Excel MATCH関数は、セル範囲内の特定の値を検索し、値の相対位置を返します。
Excel MMULT関数は、1つの配列の行列積を返します。 配列の結果には、array2と同じ行数、arrayXNUMXと同じ列数が含まれます。
ExcelのTRANSPOSE関数は、範囲または配列の方向を回転させます。 たとえば、行に水平に配置されたテーブルを列に垂直に、またはその逆に回転させることができます。
COLUMN関数は、数式が表示される列の番号を返すか、指定された参照の列番号を返します。 たとえば、数式= COLUMN(BD)は56を返します。
関連する式
複数の列と行のキャプションを持つExcelスプレッドシートで大きなデータベースを処理する場合、複数の条件を満たすものを見つけるのは常に注意が必要です。 この場合、INDEX関数とMATCH関数で配列数式を使用できます。
Excelで行と列の両方で何かを検索する場合、または特定の行と列の交点で値を検索する場合は、INDEX関数とMATCH関数を使用できます。
場合によっては、複数の基準に基づいて最も近いまたは近似の一致値を検索する必要があります。 INDEX、MATCH、IF関数を組み合わせることで、Excelですばやく実行できます。
最高のオフィス生産性ツール
Kutools forExcel-群衆から目立つのに役立ちます
毎日の仕事を迅速かつ完璧に完了させたいですか? Kutools for Excel は、300 の強力な高度な機能 (ワークブックの結合、色による合計、セルの内容の分割、日付の変換など) を提供し、80% の時間を節約します。
- 1500 の作業シナリオ用に設計されており、80% の Excel の問題を解決するのに役立ちます。
- 毎日何千ものキーボードとマウスのクリックを減らし、疲れた目と手を和らげます。
- 3分でExcelのエキスパートになります。 面倒な数式やVBAコードを覚えておく必要はもうありません。
- 30日間無制限の無料トライアル。 60日間の返金保証。 2年間の無料アップグレードとサポート。

Officeタブ-MicrosoftOffice(Excelを含む)でタブ付きの読み取りと編集を有効にする
- 数十の開いているドキュメントを切り替えるのにXNUMX秒!
- マウスの手に別れを告げて、毎日何百ものマウスクリックを減らしてください。
- 複数のドキュメントを表示および編集する際の生産性が 50% 向上します。
- Chrome、Firefox、新しいInternet Explorerと同じように、効率的なタブをOffice(Excelを含む)にもたらします。
