Categories: Excel

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

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

INDEX関数とは?

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

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

INDEX関数の書式

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

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

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

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

配列形式

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

第1引数(配列)

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

第2引数(行番号)

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

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

第3引数(列番号)

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

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

参照形式

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

第1引数(参照)

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

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

第2引数(行番号)

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

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

第3引数(列番号)

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

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

第4引数(領域番号)

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

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

INDEX関数の使用例

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

作業時間:5分

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

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

関数名を入力する

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

配列を指定する

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

行番号を指定する

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

列番号を指定する

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

INDEX関数の結果

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

INDEX関数の応用編

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

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

ExcelのINDEX関数とMATCH関数を組み合わせた使い方

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

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

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

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

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

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

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」エラーになる原因は指定している行番号もしくは列番号が配列(参照)の範囲を超えているからです。

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

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

おすすめの商品をご紹介

ExcelのADDRESS関数の使い方|セル参照の文字列を求める

ExcelのCHOOSE関数の使い方|インデックスに対応した値を取り出す

ExcelのCOLUMN関数の使い方|指定したセルの列番号を求める

ExcelのFILTER関数の使い方|必要なデータを抽出する

ExcelのGETPIVOTDATA関数の使い方|ピボットテーブルのデータ取得

ExcelのHLOOKUP関数の使い方|指定の行と同じ列にある値を返す

ExcelのHYPERLINK関数の使い方|ハイパーリンクを作成する

ExcelのINDIRECT関数の使い方|セルや他のシートを参照する

ExcelのLOOKUP関数の使い方|1行または1列の範囲から検索する

ExcelでOFFSET関数の使い方|指定した位置のセル範囲を参照する

ExcelのROW関数の使い方|セルの行番号を求める

ExcelのROWS関数の使い方|参照、または配列に含まれる行数を返す

ExcelのXLOOKUP関数の使い方|縦方向/横方向を両方検索する

ExcelのXMATCH関数の使い方|範囲を検索し相対的な位置を返す

Tanaka

View Comments

  • Everything is very open with a very clear explanation of the
    challenges. It was definitely informative.
    Your site is extremely helpful. Many thanks for sharing!

  • I visited several blogs however the audio feature for audio songs current at this
    website is really wonderful.

  • Does your website have a contact page? I'm having problems locating it but, I'd
    like to send you an e-mail. I've got some creative
    ideas for your blog you might be interested in hearing.
    Either way, great site and I look forward to seeing it develop over time.

  • Hi there! I know this is kinda off topic but I was wondering which blog platform are you using for this site?
    I'm getting sick and tired of Wordpress because I've had issues with hackers and I'm looking at options for another platform.
    I would be awesome if you could point me in the direction of
    a good platform.

  • It's going to be end of mine day, except before ending I am reading this
    great paragraph to improve my know-how.

  • Howdy would you mind sharing which blog platform you're using?
    I'm planning to start my own blog soon but I'm having a hard time making a
    decision between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design seems different then most blogs and I'm looking for something completely unique.
    P.S Apologies for getting off-topic but I had to ask!

  • After going over a handful of the articles on your website, I really like your technique of blogging.

    I saved it to my bookmark site list and will be checking back in the near
    future. Please visit my website too and let me know your opinion.

  • It's actually a cool and helpful piece of info. I am happy that you just shared this useful information with us.
    Please stay us informed like this. Thank you for sharing.