膨大なデータのなかから目的の数値・項目を抽出したいときは、INDEX関数が便利です。データの集計を行う際や、Excelから特定のデータを抽出したい際に活用できるので、マスターしておきましょう。
この記事では、INDEX関数の基本的な使い方を解説します。MATCH関数と併用する方法にも触れるので、有効活用しましょう。
Excel INDEX関数の基本と使い方
INDEX関数とは、指定した範囲から任意のセルの値を返す関数です。 膨大なデータのなかから指定した列・行の項目だけを抜き出せるため、手動での抽出によるミスや非効率を防ぐことができます。
まずはINDEX関数の基本的な使い方を解説します。
INDEX関数の基本構造
INDEX関数の基本構造は、「=INDEX(配列、行番号、列番号)」で表せます。「配列」で範囲を、「行番号」で行を、「列番号」で列を指定するイメージで作成するとわかりやすくなります。「INDEX」で行・列が交差する部分のセル内容を抽出する意味を持つため、INDEX関数と呼ばれています。
【1】氏名・部署・年齢が並んでいる表のうち、上から3人目の情報だけINDEX関数で抜き出します。「上から3人目」と記載した行を用意し、「=INDEX($B$4:$D$12,3,1)」と入力します。B4からD3の範囲における、上から3番目、左から1列目を記載する、という内容になります。
【2】EnterキーでINDEX関数の内容を反映させると、表における上から3番目の人の氏名が自動入力されます。
【3】同様のINDEX関数を使い、部署や年齢を抽出することも可能です。
「=INDEX($B$4:$D$12,3,2)」と入力すれば、B4からD3の範囲における、上から3番目、左から2列目である部署名が抽出されます。「=INDEX($B$4:$D$12,3,3)」と入力すれば、B4からD3の範囲における、上から3番目、左から3列目である年齢が抽出されます。
関連記事:Excel基本操作から応用スキルまで網羅!ビジネス活用術
INDEX関数とMATCH関数の組み合わせ
MATCH関数とは、指定した値と一致する最初のセルの位置を返す関数です。INDEX関数はMATCH関数と組み合わせて使われることが多く、同時に使うことにより横方向と縦方向に検索条件を指定して目的のデータを取得できます。
MATCH関数の概要と使い方
MATCH関数の基本構造は、「=MATCH (検査値, 検査範囲, [照合の種類])」で表せます。「検査値」は検索する値を、「検索範囲」はその名の通り検索する範囲を、「照合の種類」は検索方法を示す項目です。「照合の種類」には、下記の内容をそれぞれ数値で入力します。
「照合の種類」に入力する数値 | 意味 |
0 | [検査値]と完全に一致する値のみを検索する。 |
1 | [検査値]以下の最大値を検索する。この場合、[検査範囲]は昇順に並べておく必要があります。 |
-1 | [検査値]以上の最小値を検索する。この場合、[検査範囲]は降順に並べておく必要があります。 |
【1】順位・氏名・部署・年齢が並んでいる表のうち、5位の人の情報だけ抜き出します。「5位の人」と記載した行を用意し、「=INDEX(C4:C12, MATCH(B8, B4:B12, 0))」と入力します。「B4からB12の範囲におけるB8の値のうち、C4からC12の範囲で合致するものを記載する」という内容になります。
【2】EnterキーでINDEX関数とMATCH関数の内容を反映させると、該当者の氏名が自動入力されます。
【3】同様のINDEX関数とMATCH関数を使い、部署や年齢を抽出することも可能です。
「=INDEX(D4:D12, MATCH($B$8, $B$4:$B$12, 0))」と入力すれば、D4からD12における同行の内容を検索できるため、部署名が抽出されます。「=INDEX(E4:E12, MATCH($B$8, $B$4:$B$12, 0))」と入力すれば、E4からE12における同行の内容を検索できるため、氏名が抽出されます。
INDEX関数・MATCH関数とVLOOKUP関数の違い
INDEX関数・MATCH関数とVLOOKUP関数は非常に似ていますが、使い勝手が異なるので注意しましょう。
VLOOKUP関数とは、垂直を意味する「Vertical」の頭文字「V」と探すを意味する「LOOKUP」を組み合わせたExcelの関数です。指定した範囲の中から特定のデータに対する値を探し出す関数であり、一見するとINDEX関数・MATCH関数とよく似ています。
ただしVLOOKUP関数はデータを縦方向に検索するため、検索値に一致した値と同じ行の値を指定した列から抽出するのが特徴です。つまり検索列を必ず表の左端に設置しておく必要があり、「表のどこに検索列があるかわからない」という場合に不便さを感じるかもしれません。
表のどこに検索列があるかわからないときや、縦方向だけでなく横方向での検索をしたいときは、INDEX関数とMATCH関数を組み合わせるのが理想です。検索範囲設定の柔軟性が高く、検索列の位置も制約がないため、複雑な検索を自動化したいときに最適です。
よくある質問
ExcelのINDEX関数に関して「よくある質問」を紹介します。
Excelのインデックスとはどういう意味ですか?
「INDEX」とは、行・列が交差する部分のセル内容を抽出する意味を指す言葉です。そもそも「インデックス」という言葉自体に「索引・見出し」「指数・指標」などの意味があり、データベースに含まれて検索されるようになることを「インデックスされる」と表現することもあります。
ExcelのINDEX関数で列番号を0にするとどうなる?
ExcelのINDEX関数で列番号を0にすると、「#スピル!」とエラーが表示されます。数式が複数の結果を返している状態であり、Excel がグリッドに結果を返すことができない場合に返されます。つまり、候補が多すぎて表示しきれない状態になっているのです。
ExcelのINDEX関数とは?
ExcelのINDEX関数とは、指定した範囲から任意のセルの値を返す関数です。特定の条件に合致するデータだけ抽出したいときや、特定のキーワードと同じ行・列などの数値を抽出したいときに役立ちます。
まとめ
INDEX関数はデータ検索に便利な機能であり、MATCH関数と組み合わせながら使うことも可能です。同様にデータ検索に便利なVLOOKUP関数もありますが、こちらはデータを縦方向に検索する点に注意しましょう。
検索列が左端にあり楯列で検索したいときはVLOOKUP関数を、検索箇所がどこにあるかわからないときや膨大なデータから検索したいときはINDEX関数とMATCH関数を併用するなど、工夫していきましょう。
ExcelのINDEX関数に関する重要用語
用語 | 説明 |
INDEX関数 | 指定した範囲から任意のセルの値を返す関数。 |
INDEX | 行・列が交差する部分のセル内容を抽出することを意味する言葉。 |
MATCH関数 | 指定した値と一致する最初のセルの位置を返す関数。 |
照合の種類 | 検査値と一致するセル、または最大値・最小値となるセルを検索する項目。 |
VLOOKUP関数 | 指定した範囲の中から特定のデータに対する値を探し出す関数。 |
#スピル! | Excel がグリッドに結果を返すことができない場合に表示されるエラー記号。 |