ExcelでINDEX-MATCH式を使用して、複数の結果を生成する方法

  • これを共有
Hugh West

大量のデータを扱う中で、複数の結果を出すことになります。 Excelでは、複数の結果を抽出するのにとても便利な方法があります。 今回は、その方法として INDEX-MATCH をExcelで作成し、複数の結果を生成することができます。

練習用テンプレートダウンロード

練習用のExcelテンプレートはこちらから無料でダウンロードできますので、ご自身で練習してみてはいかがでしょうか。

INDEX MATCH Multiple Results.xlsx

ExcelでINDEX関数とMATCH関数を併用し、複数の結果を抽出する4つの便利な方法

の活用について詳しく説明します。 INDEX機能 MATCH機能 をExcelでまとめて、複数の結果を得ることができます。

1.ExcelでINDEX MATCH式を使って配列から複数の結果を見つける

次のようなデータセットを考えてみましょう。

を実行することで得ることができます。 INDEX-MATCH の数式をワークシートに入力します。

を使用して、配列の集合の中から複数の結果を求める手順。 INDEX-MATCH の機能を以下に示します。

ステップス

  • データセットから名前を選択する( B5:B11 を入力し、後でセル参照番号を使用するために別のセルに名前を入れます(例:名前 ビリア において セルG4 ).
  • 結果のセルにしたい別のセル(例. セルG7 )を、次の式で書きなさい。
=index($c$5:$c$11,small(if(isnumber(match($b$5:$b$11,$g$4,0)),match(row($b$5:$b$11),row($b$5:$b$11)),""),rows($a$1:a1)))

これです。

C$5:$C$11 = ルックアップ値を検索するための配列

B$5:$B$11 = ルックアップ値である配列

  • プレス 入力 .

データに対する結果であることがわかります(例. ビリア )を選択したセルに入れることです。 G4 が,結果のセルに表示されます(例. 65 において G7 ).

  • ここで、行を下にドラッグして フィルハンドル で、その同じルックアップ値の残りの結果を取得します。

この処理は特定の値に対して一定ではないので、選択されたセル内の任意のルックアップデータを選ぶことができます(例. G4 )であり、その特定のデータの結果は結果セルに自動更新されます(例. G7 ).

詳しくは、以下の図をご覧ください。

フォーミュラの内訳

なぜそのような結果になったのか、数式を分解して理解しましょう。

  • match($b$5:$b$11, $g$4, 0) になります。

-> MATCH({"Flintoff"; "Ronaldo"; "Plessis"; "Villiers"; "Beckham"; "Villiers"; "Plessis"}, "Villiers", 0).

-> 出力します。 {#n/a; #n/a; #n/a; 1; #n/a; 1; #n/a}。

説明する。 検索値がルックアップ配列にマッチした場合は MATCH 関数が返す 1 を返し、それ以外の場合は #該当なし .

  • isnumber(match($b$5:$b$11, $g$4, 0)) になります。

-> isnumber({#n/a; #n/a; #n/a; 1; #n/a; 1; #n/a})

-> 出力:{FALSE; FALSE; FALSE; TRUE; FALSE; TRUE; FALSE}です。

説明する。 として IF関数 はエラー値を扱うことができないので ISNUMBER関数 は、ここで配列の値をブール値に変換するために利用されています。

  • if(isnumber(match($b$5:$b$11, $g$4, 0)), match(行($b$5:$b$11))、行($b$5:$b$11)、"") になります。

-> if({false; false; false; true; false; true; false}, match(row($b$5:$b$11), row($b$5:$b$11)), "")

になる

-> if({false; false; false; true; false; true; false}, {1; 2; 3; 4; 5; 6; 7}, "")

-> 出力:{"";"";4;"";6}。

説明する。 まず第一に イフ 関数は,ブール値を行番号と空白に変換する。 後に MATCH ROW関数 は、1からnまでの連続した数字で配列を計算する。 nはセル範囲の合計サイズの最後の数字である。 として B$5:$B$11 は7つの値を持つので、配列は次のようになります。 {1; 2; 3; 4; 5; 6; 7} .

  • small(if(isnumber(match($b$5:$b$11, $g$4, 0)), match(row($b$5:$b$11), row($b$5:$b$11)), ""), rows($a$1:a1))) になる

-> small({""; ""; 4; ""; 6}, rows($a$1:a1))

-> small({"; ""; ""; 4; ""; 6}, 1)

-> 出力:4

説明する。 最初に SMALL機能 は行番号からどの値を取得するかを決定します。 次に この関数は、そのセルが下のセルにコピー&ペーストされるたびに変化する数値を返します。 最初は、この関数は 4 によると、次のセルでは、データセットによると ROWS($A$1:A1) に変更する。 ROWS($A$1:A2) を返します。 6 .

  • index($c$5:$c$11, small(if(isnumber(match($b$5:$b$11, $g$4, 0)), match(row($b$5:$b$11), row($b$5:$b$11)), "")), rows($a$1:a1))) になる

-> index($c$5:$c$11, 4)

-> 出力:65

説明する。 があります。 INDEX 関数は,指定された配列の行と列の番号から値を返します. 第4 の値を配列で指定します。 C$5:$C$11 でございます 65 で、そのため INDEX 関数が返す 65 細胞内 G7 .

続きを読む ExcelのIFとINDEX-MATCH (3つの適切な方法)

2.ExcelでINDEX MATCH式を使用して、今後のイベントの名前と日付の複数の結果を検索します。

大事なイベントの日を忘れてしまうことがあります。 そんなときは INDEX MATCH の機能がレスキュー隊として働きます。

以下は、友人の誕生日を知るためのサンプルデータです。

そこで、私たちが行ったのは INDEX MATCH 次は誰の誕生日か、それはいつなのか、ということを調べるための計算です。

つまり、人の名前やこれから起こるイベントの名前を知るための公式は

=index($b$5:$b$9,match(f5,$c$5:$c$9,1))+1)

そして、次のイベントの日付を知るための計算式は

=index($c$5:$c$9,match(f5,$c$5:$c$9,1)+1)

フォーミュラの内訳

Alexという名前と誕生日の日付がどのようにわかったのか、数式を分解して理解しましょう。

  • マッチ(f5,$c$5:$c$9,1)

-> 出力:4

説明する。 があります。 MATCH 関数は、ルックアップ値の位置を求めます( セルF5 = 2021年11月11日(木) )を配列定数( C$5:$C$9 = 日付のリスト ).

この例では、完全一致ではなく MATCH 関数は近似一致を返すので、第3引数を 1 又は ).

  • index($b$5:$b$9,match(f5,$c$5:$c$9,1)+1) になる

-> index($b$5:$b$9, 4) +1)

-> 出力:アレックス /(イベント名)

説明する。 があります。 INDEX 関数は2つの引数をとり,一次元の範囲内の特定の値を返す。 ここでは,範囲 B$5:$B$9 は、まず引数と、前節の計算で得た結果 (マッチ(f5,$c$5:$c$9,1)) 位置 4 の位置にある値を検索していることになる。 4 において B$5:$B$9 の範囲である。

と。

  • index($c$5:$c$9,match(f5,$c$5:$c$9,1)+1) になる

-> index($b$5:$b$9, 4) +1)

-> 出力:2021年12月7日(火)

説明する。 があります。 INDEX 関数は2つの引数をとり,一次元の範囲内の特定の値を返す。 ここでは,範囲 C$5:$C$9 は、まず引数と、前節の計算で得た結果 (マッチ(f5,$c$5:$c$9,1)) 位置 4 の位置にある値を検索していることになる。 4 において C$5:$C$9 の範囲である。

今後のイベントの日付を取得するために、次のようにセルの位置に1を追加するだけです。 MATCH 関数を実行すると、次のイベントの日付のセル位置が表示されました。

続きを読む 複数の値を水平に返すExcelのINDEX-MATCH式

類似の読み物

  • Excelでワイルドカードを使用したINDEX MATCHの複数条件 (完全ガイド)
  • [修正しました!】ExcelでINDEX MATCHが正しい値を返さない(5つの理由)
  • ExcelでVLOOKUPの代わりにINDEX MATCHを使用する方法(3つの方法)
  • エクセルで重複した値をINDEX+MATCHする(3つの簡単な方法)
  • エクセルで特定のデータを選択する方法(6つの方法)

3.ExcelのINDEX MATCH式で複数の結果を別列に生成する

今までは、行単位で結果を取得していましたが、もし、結果を 別枠 .

複数の人名を表す3種類の職業からなる次のデータセットについて考えてみよう。

職業に応じたグループを作りたかったので、名前を配置することにしました 列方向 それぞれの職業に応じた

複数のマッチ結果を別々の列の別々のセルに抽出するには、ちょっとしたコツが必要です。 INDEX 関数を使用します。

を組み合わせて、Excelで複数列のマッチ結果を抽出する方法を学びましょう。 INDEX 機能などです。

ステップス

  • データ範囲から職業を選択する( B5:B11 )、データを別のセルに入れ、後でそのセルの参照番号を使用する(例:職業 クリケット選手 において セルE5 ).
  • 結果のセルにしたい別のセル(例. セルF5 ) を書き、次の式を書きなさい。
=ferror(index($c$5:$c$11,small(if($b$5:$b$11=$e5,row(c5:c11)-min(row(c5:c11))+1),columns($e$5:e5))),"")

これです。

C$5:$C$11 = ルックアップ値を検索するための配列

B$5:$B$11 = ルックアップ値である配列

  • プレス 入力 .

データに対する結果であることがわかります(例. クリケット選手 )を選択したセルに入れることです。 E5 が,結果のセルに表示されます(例. フリントフ において セルF5 ).

  • で行をドラッグして移動します。 フィルハンドル を使えば、同じルックアップ値の残りの結果を、別々の複数のカラムで取得できます。

  • もう一度、行をドラッグして フィルハンドル を使用して、異なるルックアップ値の残りの結果を取得します (例. サッカー選手、レスリング選手 を複数の列に分割して表示することができます。

フォーミュラの内訳

なぜそのような結果になったのか、数式を分解して理解しましょう。

  • small(if($b$5:$b$11=$e5,行($c$5:$c$11)-min(行($c$5:$c$11))+1),columns($e$5:e5))

私たちはすでに、前回の議論から、どのように スモール、イフ 関数は一緒に動作しますが、ここでもそのトリックを使って N 番目のマッチに対応する行番号を生成しています。 行番号が得られたら、それを単純に INDEX 関数で、その行の値を返します。

-> 出力します。 ( 下の写真のように )

  • index($c$5:$c$11,small(if($b$5:$b$11=$e5,row($c$5:$c$11)-min(row($c$5:$c$11))+1)),columns($e$5:e5))) -に行番号を渡します。 INDEX 関数を用いて,対応する行番号の値を抽出します。

-> 出力します。 ( 下の写真のように )

  • iferror(index($c$5:$c$11,small(if($b$5:$b$11=$e5,row(c5:c11)-min(row(c5:c11))+1),columns($e$5:e5))),""") ->カラムが存在しない値を返した場合、そのカラムは #エヌエム エラーを防ぐために、式全体を IFERROR関数 を使用してエラーを検出し 空の文字列 をリターンとする。

-> 出力します。 ( 下の写真のように )

続きを読む Excel INDEX MATCHで1つのセルに複数の値を返す

4. ExcelのINDEX MATCH関数を使用して複数の結果を別々の行に抽出する

前回と同じように、複数の結果を複数行に抽出することが気になるのであれば、その計算式は

=ferror(index($c$5:$c$11,small(if($b$5:$b$11=e$4,row(c5:c11)-min(row(c5:c11))+1),rows($e$5:e5))),""")

その他、手順や計算式の詳細については、第3章と同じです。

押さえておくべきポイント

  • 値を検索するデータテーブル配列の範囲は固定されているので、忘れずに ドル 記号を配列テーブルのセル参照番号の前に置く。
  • 配列の値を扱うときは、忘れずに Ctrl + Shift + Enter を押すだけで、結果を抽出することができます。 入力 を使用しているときのみ機能します。 Microsoft 365 .
  • を押した後 Ctrl + Shift + Enter の数式を数式バーで囲んでいることに気づきます。 中括弧{} を入力し、配列式として宣言します。 括弧{} を選択すると、Excelが自動的にこれを行います。

結論

の使い方を詳しく説明しました。 INDEX MATCH 関数を使って、複数の結果を抽出することができます。 この記事があなたのお役に立つことを願っています。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。