はじめに
Googleスプレッドシートでデータを参照・抽出するための関数の一つがINDEX関数です。指定した範囲から行番号と列番号に基づいて値を取得するこの関数は、他の関数と組み合わせて使うことで、柔軟かつ効率的なデータ操作を実現します。
この記事では、INDEX関数の基本的な使い方から、実際のビジネスシーンでの応用例までをわかりやすく解説していきます。INDEX関数の機能を理解することで、スプレッドシート上でのデータ管理が一層スムーズになるでしょう。
INDEX関数とは?
INDEX関数は、指定したデータ範囲から、行と列の位置を指定して値を取り出す関数です。データベースやテーブル形式のデータから、特定の行・列のデータを簡単に抽出することができ、他の関数(MATCH関数やVLOOKUP関数など)と組み合わせて使うと、さらに効率的なデータ参照が可能です。
INDEX関数の基本構文
=INDEX(範囲, 行番号, [列番号])
● 範囲: データの範囲を指定します。
● 行番号: 範囲内で取得したい行の位置を指定します。
● 列番号(オプション): 範囲内で取得したい列の位置を指定します。
INDEX関数の基本的な使い方
まずは、シンプルなINDEX関数の使い方を紹介します。
実例1:顧客データから特定の行の名前を取得
データ例
顧客ID | 名前 | 部署 |
---|---|---|
001 | 田中 | 営業 |
002 | 鈴木 | 開発 |
003 | 佐藤 | サポート |
004 | 中村 | 総務 |
この表から、2行目にある「名前」を取得したい場合、次のようにINDEX関数を使います。
=INDEX(B2:B5, 2)
解説
範囲をB2:B5
で指定して、2行目の値(「鈴木」)を取得します。
結果
結果: 鈴木
INDEX関数の応用例
INDEX関数は、単独で使用するだけでなく、他の関数と組み合わせることで、より高度なデータ検索や抽出が可能になります。ここからは、ビジネスシーンでも使える実践的な例をいくつか紹介します。
実例2:MATCH関数との組み合わせで動的にデータを参照
INDEX関数とMATCH関数を組み合わせると、検索結果に基づいて動的にデータを参照できます。たとえば、顧客名を入力することで、その顧客の部署を自動的に取得したい場合に便利です。
データ例
顧客ID | 名前 | 部署 |
---|---|---|
001 | 田中 | 営業 |
002 | 鈴木 | 開発 |
003 | 佐藤 | サポート |
004 | 中村 | 総務 |
この表で、名前「佐藤」の部署を自動で取得する場合、次のようにINDEX関数とMATCH関数を使います。
これは、Vlookupの代わりにもよく紹介される使い方です。
=INDEX(C2:C5, MATCH("佐藤", B2:B5, 0))
解説
MATCH関数で「佐藤」が何行目にあるかを取得し、その行にある「部署」をINDEX関数で取得します。
結果
結果: サポート

実例3:複数列のデータから条件に基づいた値を抽出
INDEX関数は複数列のデータから、条件に基づいてデータを抽出する際にも役立ちます。
データ例
商品ID | 商品名 | カテゴリ | 価格 |
---|---|---|---|
A001 | ノートPC | 電子機器 | 150,000 |
A002 | タブレット | 電子機器 | 80,000 |
A003 | 椅子 | 家具 | 20,000 |
A004 | テーブル | 家具 | 25,000 |
たとえば、「電子機器」カテゴリの2番目の商品名を取得する場合、次のようにINDEX関数とFILTER関数を組み合わせて使用します。
=INDEX(FILTER(B2:B5, C2:C5="電子機器"), 2)
解説
FILTER関数で「電子機器」カテゴリの商品名を抽出し、その中で2番目の商品をINDEX関数で取得します。
結果
結果: タブレット

実例4:複数条件でデータを動的に取得
INDEX関数とARRAYFORMULA、MATCHを組み合わせて複数の条件でデータを参照する方法も有効です。
データ例
社員ID | 名前 | 部署 | 年齢 |
---|---|---|---|
101 | 田中 | 営業 | 30 |
102 | 鈴木 | 開発 | 35 |
103 | 佐藤 | サポート | 28 |
104 | 中村 | 総務 | 40 |
ここで、「営業」部署で30歳の社員を特定したい場合、次のように使います。
=INDEX(A2:A5, MATCH(1, (C2:C5="営業")*(D2:D5=30), 0))
解説
MATCH
関数で条件「営業」かつ「30歳」に該当する社員の行を特定し、その行の「社員ID」をINDEX関数で取得します。
結果
結果: 101
実例5:動的なデータ範囲でINDEX関数を活用
INDEX関数は、動的なデータ範囲を参照する際にも役立ちます。データが増減するたびに範囲を調整するのではなく、INDEX関数を用いて自動で範囲を拡張するよう設定できます。
データ例
日付 | 売上 |
---|---|
2023/01/01 | 500,000 |
2023/01/02 | 600,000 |
2023/01/03 | 550,000 |
2023/01/04 | 700,000 |
ここで、売上の最終行のデータを取得したい場合、次のようにINDEX関数とMATCH関数を組み合わせます。
=INDEX(B2:B100, COUNT(B2:B100))
解説
COUNT関数で売上データがある最終行の位置を取得し、その位置にある値をINDEX関数で取得します。
結果
結果: 700,000
INDEX関数のメリットと注意点
メリット
注意点
● 行・列の範囲の間違いに注意: 誤った行番号や列番号を指定するとエラーになるため、注意が必要です。
● 多すぎる組み合わせによる複雑化: 多数の関数を組み合わせると式が複雑になるため、誤操作の原因になることがあります。
INDEX関数の実践活用まとめ
INDEX関数はGoogleスプレッドシートでのデータ抽出や参照に非常に強力なツールです。特にMATCH関数やFILTER関数と組み合わせて使うことで、さまざまな条件に対応したデータ参照が可能になります。データの量が多くても、INDEX関数を使えば効率よく管理できますので、日々の業務や分析にぜひ活用してみてください。
コメント