Amazon BigSale!ブラックフライデー開催中
終了まで19時間16分

Office Hack

ExcelのINDEX関数の使い方|行と列が交差する位置にあるセルを返す

  • Release
  • Update

Excelの関数の中でもよく使用される関数としてINDEX関数があります。INDEX関数単体ではなくMATCH関数と組み合わせることが多いです。

Excelの検索関数としてVLOOKUP関数が代表的ですが、MATCH関数と組み合わせることでVLOOKUP関数より柔軟な検索が可能となっています。

実際の例を使用してどのようにINDEX関数を使うのか基本的な使い方から応用まで幅広くご紹介しています。

INDEX関数とは?

INDEX(インデックス)関数は、指定された行と列が交差する位置にあるセルまたはセルの参照を返す関数です。

INDEX関数の例

上図はINDEX関数を使った例です。A2:E11のセル範囲の中で「8」行目と「2」列目が交差するセルである「37」が返ります。

INDEX関数の書式

INDEX関数の書式は「配列形式」と「参照形式」の2種類あります。

隣接しない複数の範囲から行と列が交差するセルを求める場合は「参照形式」を使用します。

INDEX関数の書式

書式は以下の2つの形式があり、形式ごとに引数が異なります。

  • =INDEX(配列, 行番号, [列番号])
  • =INDEX(参照, 行番号, [列番号], [領域番号])

配列形式

配列形式は最大で3つの引数があります。

第1引数(配列)
INDEX関数の配列

1番目の引数は「配列」です。この引数は必須です。セル範囲または配列定数を指定します。

第2引数(行番号)
INDEX関数の行番号

2番目の引数は「行番号」です。この引数は必須です。ただし第1引数「配列」が1行のときは省略可能です。

配列内の行の位置を数値で指定します。「0」を指定した場合、行全体を返します。

第3引数(列番号)
INDEX関数の列番号

3番目の引数は「列番号」です。この引数は任意です。ただし第2引数「行番号」が省略されているときは必須です。

配列内の列の位置を数値で指定します。「0」を指定した場合、列全体を返します。

参照形式

参照形式は最大で4つの引数があります。

第1引数(参照)
INDEX関数の参照

1番目の引数は「参照」です。この引数は必須です。1つまたは複数のセル参照を指定します。

隣接しない複数の範囲を指定する場合

隣接していない複数の範囲を指定する場合、「()」(括弧)で囲って「,」(カンマ)で区切ります。

第2引数(行番号)
INDEX関数の行番号

2番目の引数は「行番号」です。この引数は必須です。

範囲内の行の位置を数値で指定します。「0」を指定した場合、行全体を返します。

第3引数(列番号)
INDEX関数の列番号

3番目の引数は「列番号」です。この引数は任意です。

範囲内の列の位置を数値で指定します。「0」を指定した場合、列全体を返します。

第4引数(領域番号)
INDEX関数の領域番号

4番目の引数は「領域番号」です。この引数は任意です。省略すると第1引数「参照」で指定した範囲のうち1番目の範囲を使用します。

第1引数「参照」で隣接していない複数の範囲を指定した場合、どの範囲を使用するか数値で指定します。

INDEX関数の使用例

INDEX関数の使用例をご紹介します。引数の使い方を実際にやってみて確認しましょう。

作業時間:5分

  1. 表形式のデータを用意する

    表形式のデータを用意する

    今回は1から50までの数値が入った表形式のデータを用意しました。I2、I3セルに入力した行と列の番号を元に交差する数値を左のテーブルから求めましょう。

  2. 関数名を入力する

    関数名を入力する

    INDEX関数の結果を表示したい【セル(例ではH5セル)】を選択し、『=INDEX(』と入力します。

  3. 配列を指定する

    配列を指定する

    対象のセル範囲を指定します。「=INDEX(」に続いて『A2:E11,』と入力します。マウスでセル範囲をドラッグで選択することもできます。

  4. 行番号を指定する

    行番号を指定する

    行番号を指定します。「=INDEX(A2:E11,」に続いて『I2,』と入力します。マウスでセルを選択することもできます。

  5. 列番号を指定する

    列番号を指定する

    列番号を指定します。「=INDEX(A2:E11,I2,」に続いて『I3)』と入力します。マウスでセルを選択することもできます。最後に【Enter】キーを押します。

  6. INDEX関数の結果

    INDEX関数の結果

    INDEX関数の数式を入力したH5セルに「8」行目と「2」行目が交差するB9セルの結果が表示されました。

INDEX関数の応用編

INDEX関数とMATCH関数を組み合わせる

INDEX関数とMATCH関数を組み合わせてデータを抽出するやり方をご紹介しています。INDEX関数はMATCH関数と組み合わせることが多いのでぜひやり方を覚えましょう。

INDEX関数とSUMPRODUCT関数を組み合わせる

INDEX関数とSUMPRODUCT関数を組み合わせて複数条件に一致するデータを抽出するやり方をご紹介します。

SUMPRODUCT関数は範囲または配列の対応する要素の積を合計した結果を返します。書式は「=SUMPRODUCT(配列1,[配列2],…)」のように記述します。

表形式データを用意する

上図では左側に商品ごとに「売上トップ店」「売上個数」「売上額」が用意されています。この表を元にして複数列の条件を満たす結果を右側に表示させます。

条件1として店舗が「渋谷」、条件2として売上個数が「200」を設定しました。INDEX関数とSUMPRODUCT関数を組み合わせることでこの2つをどちらも満たす検索結果(AND条件)を出力します。

INDEX関数の入力

検索結果を表示させたい【セル(例ではH2セル)】を選択し、『=INDEX(A1:D6,』と入力します。表データの見出しも含めて範囲を指定します。

SUMPRODUCT関数の入力

SUMPRODUCT関数で複数の条件に満たす行数をINDEX関数に渡します。

「=INDEX(A1:D6,」に続いて『SUMPRODUCT((B1:B6=F2)*(C1:C6=G2)*ROW(B1:B6)),』と入力します。

SUMPRODUCT関数の中にさらにROW関数を使用しています。ROW関数は参照の行番号を返します。書式は「=ROW([参照])」のように記述します。

SUMPRODUCT関数で条件1「B1:B6=F2」と条件2「C1:C6=G2」を指定し、2つの条件に一致した行数をROW関数で抽出しています。

列番号の指定

INDEX関数の列番号を指定します。検索結果に商品名を表示させたい場合、左側の表データでは1列目に商品名があります。

「=INDEX(A1:D6,SUMPRODUCT((B1:B6=F2)*(C1:C6=G2)*ROW(B1:B6)),」に続いて『1)』と入力し、Enterを押します。

複数条件で抽出した結果

H2セルに条件1と条件2を同時に満たす「クッキー」が表示されました。複数の関数が入れ子(ネスト)していますが、1つずつの役割を確認しましょう。

INDEX関数のよくあるエラーとその対処方法

#REFエラー

INDEX関数で「#REF」エラーになる原因は指定している行番号もしくは列番号が配列(参照)の範囲を超えているからです。

#REFエラー

上図の例では、A2からE11のセル範囲を配列に指定していますが、行番号として指定している「11」が範囲外になっているため#REFエラーになっています。

#REFエラーを解消するためには行番号が範囲内になるように修正しましょう。

おすすめの商品をご紹介

MATCH関数も合わせてチェック!

INDEX関数と組み合わせてよく使われるMATCH関数の基本的な使い方を説明しています。

他の関数も合わせてチェック!

Office Hackでは、ここでご紹介できなかった関数の一覧ページもご用意しております。ぜひ、参考にしてください。

よろしければ参考にならなかった点をお聞かせください

CAPTCHA


Page Top