複数の列にわたる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 AI アシスタント: 以下に基づいてデータ分析に革命をもたらします。 インテリジェントな実行 | コードを生成 | カスタム数式の作成 | データを分析してグラフを生成する | Kutools関数を呼び出す... |
人気の機能: 重複を検索、強調表示、または識別する | 空白行を削除する | データを失わずに列またはセルを結合する | 数式なしのラウンド ... | |
スーパーVルックアップ: 複数の基準 | 複数の値 | 複数のシートにわたって | ファジールックアップ... | |
上級ドロップダウンリスト: 簡単なドロップダウンリスト | 依存関係のドロップダウン リスト | 複数選択のドロップダウンリスト... | |
列マネージャー: 特定の数の列を追加する | 列の移動 | Toggle 非表示列の表示ステータス | 列を比較する 同じセルと異なるセルを選択する ... | |
注目の機能: グリッドフォーカス | デザインビュー | ビッグフォーミュラバー | ワークブックとシートマネージャー | リソースライブラリ (自動テキスト) | 日付ピッカー | ワークシートを組み合わせる | セルの暗号化/復号化 | リストごとにメールを送信する | スーパーフィルター | 特殊フィルター (太字/斜体/取り消し線をフィルター...) ... | |
上位 15 のツールセット: 12 テキスト ツール (テキストを追加, 文字を削除する ...) | 50+ チャート 種類 (ガントチャート ...) | 40+ 実用的 式 (誕生日に基づいて年齢を計算する ...) | 19 挿入 ツール (QRコードを挿入, パスから画像を挿入 ...) | 12 変換 ツール (数字から言葉へ, 通貨の換算 ...) | 7 マージ&スプリット ツール (高度な結合行, Excelのセルを分割する ...) | ... もっと |
Kutools for Excelは300以上の機能を誇り、 必要なものをワンクリックで手に入れることができます...
Officeタブ-MicrosoftOffice(Excelを含む)でタブ付きの読み取りと編集を有効にする
- 数十の開いているドキュメントを切り替えるのにXNUMX秒!
- マウスの手に別れを告げて、毎日何百ものマウスクリックを減らしてください。
- 複数のドキュメントを表示および編集する際の生産性が 50% 向上します。
- Chrome、Edge、Firefox と同様に、効率的なタブを Office (Excel を含む) にもたらします。