Sheet基本
INDEX関数 完全ガイド
INDEX関数 完全ガイド
行・列番号を指定して値を取り出す
INDEXは「行番号・列番号で値を取り出す」シンプルな関数。MATCHやSEQUENCEと組み合わせることで、動的な参照・集計の基盤になる。
GASとの関係:data[row][col] の配列アクセスと同じ
GASで data[3][2](4行目3列目の値)と書く配列アクセスは INDEX と同じ操作です。INDEXの行列番号の考え方がGASの配列操作に直結します。
目次
INDEX関数とは
INDEX関数は指定した範囲の中から、行番号・列番号で特定のセルの値を返す関数です。単体では「配列の中のN番目の値を取り出す」シンプルな動作ですが、MATCHと組み合わせることで強力な検索ツールになります。
基本構文
=INDEX(範囲, 行番号, [列番号])
// B2:D10の範囲の3行目・2列目の値を返す(= C4に相当)
=INDEX(B2:D10, 3, 2)
// B列(1列のみ)の5番目の値
=INDEX(B2:B100, 5)
// 1行目(横範囲)の3番目の値
=INDEX(A1:Z1, 1, 3)
実務でよく使うパターン
パターン1:SPLITの結果から特定の要素を取り出す
// "田中 花子" を分割して苗字だけ取り出す
=INDEX(SPLIT(A2, " "), 1, 1) // 1番目(苗字)
=INDEX(SPLIT(A2, " "), 1, 2) // 2番目(名前)
パターン2:FILTERの結果から最初の1件だけ
// FILTERで絞り込んだ結果の最初の値だけほしい
=INDEX(FILTER(A2:A100, B2:B100="東京"), 1)
パターン3:最終行の値(動的参照)
// A列の最後の入力値を取得
=INDEX(A:A, COUNTA(A:A))
パターン4:2次元テーブルからの値取得
// 月×担当者のクロス集計表から特定の値を動的取得
// E1に月(1〜12)、E2に担当者番号を入れると対応する値を返す
=INDEX(B2:M10, E2, E1)
INDEX単体の限界とMATCHとの組み合わせ
INDEXは「何番目か」が分かっている場合は強力ですが、実務では何番目かが変動します。そこで MATCHで「何番目か」を動的に探してINDEXに渡すのが定番の使い方です。
// MATCH で行番号を動的に探す
=INDEX(D:D, MATCH("田中", A:A, 0))
// → A列で"田中"が何行目かをMATCHで取得し、その行のD列を返す
INDEX+MATCHの詳細はINDEX+MATCH完全ガイドを参照してください。
この知識をGASで活かす
GASで2次元配列(getValues()の結果)から特定の値を取り出すとき、INDEXの「行番号・列番号でアクセス」の感覚がそのまま data[row][col] の書き方に対応します。INDEXをマスターするとGASの配列操作が直感的になります。
Free Newsletter
AIを業務に活かしたいなら
SMR-Labメルマガ
毎週火曜10時、コピペで使えるChatGPTプロンプト・
GASテンプレートをお届け。登録は1分・完全無料。
