INDEX関数の使い方
範囲内の指定した位置にあるセルの値を返します。
200720102013201620192021365
- 構文
-
=INDEX(配列, 行番号, [列番号]) - 引数
-
- 配列必須
- 行番号必須
- 列番号省略できる
- どんな関数か
INDEX は、範囲の「上から◯番目、左から◯番目」の値を返します。単体ではあまり使わず、
MATCHと組み合わせるのが定番です(=INDEX(C:C, MATCH(F2,A:A,0)))。VLOOKUPと違って探す列が左端である必要がなく、左側の値も取り出せます。列を挿入しても壊れにくいのも利点です。範囲が1行か1列なら、位置の指定は1つで済みます。Excel 2021 以降ならXLOOKUPのほうが短く書けます。- 使用例
-
D2 に
=INDEX(A2:C4, 2, 3)を入れると、こうなります。A B C D 1 データ1 データ2 データ3 結果 2 10 20 30 60 3 40 50 60 4 70 80 90 数式を入れたセル数式が見に行った値
結果: 60(A2:C4 の 2行目・3列目)
つまずきやすいところ
- 行番号・列番号は、シートの行・列ではなく指定した範囲の中の位置
- 1列だけの範囲なら、列番号は省略できる
- MATCH と組み合わせると、VLOOKUP と違って左側の列も取り出せる
よくあるエラーと、その直し方
#REF!- 範囲の外を指している行番号・列番号が範囲の大きさに収まっているか確かめる
INDEXを使う実例レシピ(8件)
- VLOOKUPではできない「左側検索」の定番商品名から商品IDを逆引きする(VLOOKUPが不向きな構成の時)。
- リストからランダムに1人選ぶ(抽選)名簿の中から、重複なしでランダムに当選者を決める。
- スピル結果の特定の1つだけを取り出すFILTER関数で出た複数候補のうち、一番上のものだけを採用する。
- リストの中からランダムに1人選ぶ忘年会の景品当選者を、名簿リストから1人だけ自動で抽選したい。
- 画像付きの検索システム(商品検索パネル)を作るIDを入力すると、商品名だけでなく「写真」も切り替わる仕組み。
- 配送先(都道府県)と重量から運賃を自動で引く毎回料金表を見るのではなく、サイズと行先を入れたら送料が出るようにしたい。
- 掃除当番を週替わりで自動ローテーション不公平がないよう、社員を1人ずつ順番にアサインしたい。
- ドロップダウンで「部署名」を選ぶと「地図」が切り替わるダッシュボードの一部として、選択肢に連動したビジュアルをリッチに見せたい。