INDEX で n 番目の一致を取得する
範囲からある値の n 番目に一致するものを検索し、その対応するデータを取得するには、INDEX 関数、ROW 関数、SMALL 関数、およびIF 関数を組み合わせた数式を使用できます。

INDEX を使ってある値の n 番目の一致に関連する情報を取得する方法は?
上記の表からウサイン・ボルトの3 番目の一致に関する情報を取得するには、ROW 関数と IF 関数を組み合わせて、「ウサイン・ボルト」のすべての該当行の行番号からなる配列を作成します。その後、SMALL 関数で n 番目に小さい行番号(=n 番目の一致)を抽出し、その結果を INDEX 関数に渡して、対応する行の情報を取得します。
汎用構文
=INDEX()return_range,SMALL(IF())lookup_array=lookup_value,ROW()lookup_array-ROW(INDEX())lookup_array,1,1))+1),n))
√ 注意:これは配列数式であり、入力時にCtrl+Shift+Enterを押す必要があります。
- return_range:n 番目の一致に対応する情報を返す範囲を指定します。ここでは、年または時間の範囲を指します。
- lookup_array:n 番目の一致の行位置を検索する範囲を指定します。ここでは優勝者(winner)の範囲を指します。
- lookup_value:n 番目の一致を検索する際に指定する値です。ここでは「ウサイン・ボルト」を指します。
- n:n 番目の一致を示します。nを1 に設定すると、値の1 番目の一致を検索します。2 番目の一致を検索するには、nを2 に設定します。
ウサイン・ボルトの3 番目の一致に関する情報 を取得するには、以下の数式をセル G8 および G9 にコピーまたは入力し、Ctrl +Shift +Enter を押して結果を取得してください: to get the results:
年(セル G8)
=INDEX()B6:B12,SMALL(IF())C6:C12=G5,ROW()C6:C12-ROW(INDEX())C6:C12,1,1))+1),G6))
タイム(セル G9)
=INDEX()D6:D12,SMALL(IF())C6:C12=G5,ROW()C6:C12-ROW(INDEX())C6:C12,1,1))+1),G6))

数式の説明
ここでは以下の数式を例として使用します:
=INDEX(B6:B12,)SMALL()IF(C6:C12=G5,)ROW(C6:C12)-ROW(INDEX(C6:C12,1,1))+1),G6))
- ROW(C6:C12):ROW 関数は、範囲 C6:C12 内の各セルの行番号を、次のような配列で返します:{6;7;8;9;10;11;12}。
- ROW(INDEX(C6:C12,1,1)):INDEX 関数と ROW 関数を組み合わせることで、このExcel ワークシート内の検索範囲 C6:C12の最初の行番号が取得されます。その値は6です。
- IF(C6:C12=G5,)ROW(C6:C12)-ROW(INDEX(C6:C12,1,1))+1)=IF(C6:C12=G5,){6;7;8;9;10;11;12}-6+1):IF 関数は、範囲 C6:C12 内の各値がセルG5(つまり)ウサインボルト)と一致するかどうかをチェックします。一致した場合は「対応する行番号-6+1」の計算結果を返し、一致しない場合は FALSE を返します。その結果、次のような配列が得られます:{FALSE;2;3;4;FALSE;FALSE;FALSE}。
- SMALL()IF(C6:C12=G5,)ROW(C6:C12)-ROW(INDEX(C6:C12,1,1))+1),G6)=SMALL(){FALSE;2;3;4;FALSE;FALSE;FALSE},G6):この式は、配列からG6セルで指定された3 番目に小さい値として4を返します。
- INDEX(B6:B12,)SMALL()IF(C6:C12=G5,)ROW(C6:C12)-ROW(INDEX(C6:C12,1,1))+1),G6))=INDEX(B6:B12,4)INDEX 関数は、年範囲の4 番目の値をB6:B12から返します。その値は北京2008です。
関連関数
Excel の INDEX 関数は、指定された範囲または配列から、指定位置に基づいて値を返します。
IF 関数は、Excel ワークブックで最もシンプルかつ有用な関数の一つです。単純な論理テストを実行し、その比較結果が TRUE であれば指定した値を、FALSE であれば別の値を返します。
Excel の ROW 関数は、指定した参照セルの行番号を返します。
関連数式
値とそれに対応する情報のリストがある場合、ある値の n 番目に一致するものに関連する情報を取得するには、VLOOKUP 関数に基づいた数式を使用できます。
Excel のリスト、テーブル、または行で、最小値、2 番目に小さい値、または n 番目に小さい値に対応するデータを取得するには、INDEX 関数と SMALL 関数を組み合わせて使用できます。
Excel のリスト、テーブル、または行において、最大値に対応するデータを取得するには、INDEX 関数と MATCH 関数を MAX 関数と組み合わせて使用できます。
テーブルにおいて最小値に対応するデータを取得するには、INDEX 関数と数式を区別するを MIN 関数と組み合わせて使用できます。
最高の Office 生産性ツール
Kutools for Excel - あなたを群衆の中から際立たせます
| 🤖 | KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気機能:検索・ハイライト・重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー VLookup:複数条件 | 複数値 | 複数シート間 | ファジーマッチ... | |
| 高度なドロップダウンリスト:簡単なドロップダウンリスト | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト... | |
| 列マネージャー:指定した数の列を追加 | 列の移動 | 非表示列の表示状態を切り替え |列を比較して同じ/異なるセルを選択... | |
| 注目の機能:グリッドフォーカス | デザインビュー | 強化された数式バー | ワークブックとシートマネージャー|リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除...)| 50+チャートタイプ(ガントチャート...)| 40+実用的な数式(誕生日に基づいて年齢を計算します...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入...)| 12 変換ツール(単語に変換する、為替レートの変換...)| 7 結合と分割ツール(高度な行のマージ、Excel セルを分割...)|。。。他にも多数 |
Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…
Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします
- 数十もの開いているドキュメントを1 秒で切り替えられます!
- 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
- 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
- Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。