エクセルはオフィスワークのみならず、自宅でのパソコンワークにも幅広く活躍する作業ツールです。
関数を覚えておくだけで、多岐にわたって活用できるため、パソコンで作業する方には覚えておきたい必須項目と言えます。
この記事では、エクセル関数のひとつである【INDEX関数】の使い方について解説。
さらにエラーが起きてしまう理由と解決方法、複数の関数と組み合わせて使う応用方法についても紹介していますので、ぜひこの機会にINDEX関数をマスターしましょう。
目次
INDEX関数とは?
INDEX関数とは、行と列が交差したセルに数値を返す関数を指します。
関数で範囲とセルをそれぞれ指定することで、その場所の数値が表示されるようになります。
INDEX関数の書式数は2通り
INDEX関数の書式は以下の2通りあります。
配列形式 | =INDEX(配列,行番号,[列番号]) |
参照形式 | =INDEX(参照,行番号,[列番号],[領域番号]) |
それぞれを解説します。
配列形式
配列形式には3つの引数を要します。
配列形式1つめの引数:配列
1つめの引数は配列です。入力は必須で、セルを範囲指定、または入力して設定します。
配列形式2つめの引数:行番号
2つめの引数は行番号です。入力は必須ですが、配列が一行の場合は省略することができます。
配列ないの位置を数値で指定し、【0】を設定した場合は、行全体の数値を返します。
配列形式3つめの引数:列番号
3つめの引数は列番号です。この引数は入力任意ですが、行番号を省略した場合は入力必須です。
参照形式
参照形式には4つの引数を要します。
参照形式1つめの引数:参照
1つめの引数は参照です。この引数の入力は必須であり、1つ、または複数のセルを範囲指定、または入力で設定します。
隣接していない範囲を複数設定する場合には、【()】で囲い【,】で区切る必要があります。
参照形式2つめの引数:行番号
2つめの引数は行番号です。入力は必須であり、範囲内の行の位置を、セルの範囲指定、または入力で設定します。
【0】と設定することで行全体を返すことが可能です。
参照形式3つめの引数:列番号
3つめの引数は列番号です。この引数の入力は任意であり、範囲内の列の位置を設定する際に使用します。
【0】と設定することで列全体を返すことが可能です。
参照形式4つめの引数:領域番号
4つめの引数は領域番号です。入力は任意であり、省略した場合参照で設定した範囲のなかから一番目の範囲を使います。
参照で隣接していない範囲を複数設定した場合は、どの範囲を使うかを範囲指定、または入力で設定します。
INDEX関数の基本的な使い方
それでは実際にINDEX関数の使い方について見ていきましょう。
まずはこのようなエクセルデータがあるとします。
AからE、2から5までの行と列に複数の数値が記載されています。
このデータをINDEX関数を用いり、指定した行番号と列番号になんの数値が記載されているかを参照して検索結果に返します。
I2とI3の数値検索の数値にはそれぞれ上から3行目、左から3列目と指定しています。
ということは、【13】という数値が答えとなり、検索結果のセルには【13】が入れば正解です。
この場合の関数の書式は以下のようになります。
=INDEX(A2:E5,I2,I3) |
A2:E5はデータの範囲を指定しています。
マウスで範囲指定、または入力して設定しましょう。
【,】で区切ったら、それぞれ列番号と行番号を指定したセル【I2】と【I3】を【,】で釘地ながら入力し、【)】で閉じ、【Enter】を押します。
【13】という数値が表示されました。
A2からE5までの範囲指定されたデータのなかで、「上から3行目」、「左から3列目」のセルの中には【13】という数値があることが関数で求められました。
関数の挿入を用いてINDEX関数を行う方法
エクセルでは関数を手入力で作成する方法のほかに、【関数の挿入】というツールを用いて関数を検索して引数の意味を確認しながら関数を作成する方法があります。
ここでは関数の挿入を使ったINDEX関数の使い方について解説します。
関数の挿入は、エクセル初心者やエクセルをまだ触ったことがない方、パソコンが自宅にあるため関数を覚えてみようと考える方にとって大変便利なツールです。
また、関数のスペルを忘れてしまい、うまく関数を作成できないといったシーンでも活躍してくれますから、手入力だけでなく、関数の挿入の使い方についてもあわせて学んでおきましょう。
✅
まずは関数の挿入の場所について確認しましょう。
関数の挿入を行う場合は【fx】と書かれた記号をクリックすることから始まります。
画像の赤枠の部分をクリックすると、
関数の挿入ダイアログボックスが開くので、【何がしたいかを簡単に入力して、[検索開始]をクリックしてください。】の部分を削除します。
検索窓に【IN】と入力し【検索開始】をクリックすると【IN】を含む関数が一覧表示されます。
そのなかから【INDEX】を選択したら【OK】をクリックします。
引数の選択ダイアログボックスが開くので、
- 配列,行番号,列番号
- 参照,行番号,列番号,領域番号
のどちらかを選択します。
※今回は参照するデータがひとつであるため、上記の【配列,行番号,列番号】を使用します。隣接していない複数の範囲を指定して参照する場合には、2つ目の【参照,行番号,列番号,領域番号】を選び、【参照】の部分には範囲指定したいセル数値を【()】で囲い【,】で区切って関数を作成しましょう。
関数の引数ダイアログボックスが開いたら、【配列】を指定しましょう。
配列では手入力で【A2:E5】と入力しても構いませんし、マウスでA2からE5を範囲選択して入力しても問題ありません。
つぎに、行番号を指定します。
【上から】と書かれた横のセル(I2)に【3】行目と指定してあるので、I2をクリック、または手入力します。
最後に列番号を指定しましょう。
列番号もI3セルに【3】列目と指定してあるので、【I3】セルをクリック、または手入力します。
範囲や指定したセルの数値に間違いがないかを確認したら【OK】を押します。
A2からE5のデータ内で、上から3行目、左から3列目の数値は【13】であることが関数の挿入でも求めることができました。
INDEX関数の応用方法~MATCH関数を組み合わせる~
INDEX関数を使った応用方法はどのようなものがあるのでしょうか。
ここではエクセルを活用していくうえで覚えておくと良い、
- INDEX関数とMATCH関数を合わせた活用法
- INDEX関数とSUMPRODUCT関数を合わせた活用法
の2種類について解説します。
どちらも画像付きでイメージしやすいように説明していますから、ぜひ一緒に試してみてください。
まずはINDEX関数とMATCH関数を合わせた活用法を解説しますが、そのまえに、MATCH関数とはなにかについて説明します。
MATCH関数とは?書式と使い方
MATCH関数とは、範囲指定したセルの項目を検索して、その範囲内の項目と対照的な位置を返すことを指します。
この画像のリスト内にある【バラ】をMATCH関数を用いてどこに表示されているかを求めます。
その際の書式は以下のようになります。
=MATCH(F2,B3:B6,0) |
書式の意味としては、
F2 | 検索したい商品名 |
B3:B6 | 検索したい商品名が含まれたセルの範囲指定 |
0 | 完全一致で探したいので【0】を入力 |
の意味があります。
書式を入力し終えたら【Enter】を押します。すると【2】という数字は表示されました。
範囲選択した際、バラという項目はそのなかの2行目にあることが求められたということです。
INDEX関数とMATCH関数を複合して応用する
このMATCH関数をとあわせて、応用してみましょう。
このような商品名、価格、在庫数が書かれたリストと、受注した日がわかるリストがあるとします。
受注日が書かれたシート内に、まだ商品コードが入力されていないのが確認できます。
この部分を、INDEX関数とMATCH関数を使って上部のリストから商品コードを参照させます。
その際の書式は以下のようになります。
=INDEX(B4:C7,MATCH(“カスミソウ”,C4:C7,0),1) |
商品コードを返したいC11のセルに、上記の書式で関数を記入し【Enter】を押します。
2つの関数を組み合わせた結果、商品コードを返すことができました。
さらに下の2つにも同じように返したいですよね。
しかし、【オートフィル】を使うと、検索値の名称が【カスミソウ】となっているため、エラーになります。
エラーになることなくオートフィルを使って返したい場合は、2段階の工程を行う必要があります。
範囲指定し【F4(絶対参照)】を押す
【=INDEX(】や【(“○○”,】に範囲指定しますが、このときに【F4】を押すことで【絶対参照】し、変更を不可能にすることができます。
(【F4】キーを押すとセル範囲の数値が【$B$4:$C$7】や【$C$4:$C$7】など【$】で囲まれるようになります)
この作業を行うことで、オートフィルを使用しても参照したセルが一段ずつ下がらなくなります。
検索値を変更
絶対参照を使いオートフィルをすると、
カスミソウの商品コードがそのままコピーされてます。
これは「カスミソウの商品コードを返す関数」をオートフィルしているために起きるエラーです。
この場合は関数内の【カスミソウ】を、【バラ】や【カーネーション】などの商品名に変えるだけで解決できます。
同じようにカーネーションもオートフィル後、名称のみを変更し、無事カーネーションの商品コードを表示することができました。
これが、INDEX関数とMATCH関数の複合した使い方になります。
SUMPRODUCT関数とは?書式と使い方
次にINDEX関数と複合させたい関数であるSUMPRODUCT(サムプロダクト)関数について説明します。
SUMPRODUCT関数とは範囲や列に対する要素の積を合わせた結果を返す関数です。
書式は以下の通りです。
=SUMPRODUCT(配列1,[配列2],[配列3],……) |
それぞれの引数の意味は以下の通りです。
配列1 | 計算対象となる要素を含む最初の配列を指定させる。入力必須。 |
[配列2],[配列3],…… | 計算対象となる要素を含む配列を指定させる。任意 |
SUMPRODUCT関数の使い方はこのようになります。
このようなリストがあったとしましょう。合計の在庫数が表示されていないことが分かるかと思います。
この合計在庫数を、SUMPRODUCT関数を使って求めてみます。
合計数を求めたいセル内に、以下の書式を記載します。
=SUMPRODUCT(E3:E6) |
※範囲指定する際には、マウスでのドラッグでも問題なく入力できます。
関数を入力したら【Enter】を押します。
合計の在庫数が400と表示されました。
SUMPRODUCT関数の基本はこのようにして使います。
INDEX関数とSUMPRODUCT関数を複合して応用する方法
ではINDEX関数とSUMPRODUCT関数を複合して複数の条件に一致するデータを返す方法を説明します。
このリストを元に、複数指定した列の条件を満たした結果を【検索結果】に返します。
条件1を【旭川】条件2を【売上個数】に設定しました。
つづいて以下の書式をH2セルに入力します。
=INDEX(A1:D5,SUMPRODUCT((B1:B5=F2)*(C1:C5=G2)*ROW(B1:B5)),1) |
【Enter】を押します。
条件1の【旭川】と、条件2の【売上個数】から、カスミソウであることを検索し返すことができました。
INDEX関数における【#REF】エラーの理由と解決方法
INDEX関数を使用する際、最も多く見られるのが【#REF】エラーです。
【#REF】エラーとなる理由は、行や列の番号が参照の範囲を超えていることが考えられます。
画像を見てみると、
数値検索の横の条件部分、【上から】の条件が7行目と記入されていて、、テーブルの範囲を超えていることがわかります。
これでは参照できるものがないため、【#REF】エラーとなってしまうのです。
まとめ
INDEX関数はとても使いやすいため、エクセルをマスターしたい方にはすぐに覚えられる関数と言えるでしょう。
複数の関数と組み合わせて使うことで、様々な作業効率をアップさせてくれるINDEX関数。
ぜひこの機会に、エクセルの関数をマスターし、上級者らしいデータ作成を行っていきましょう。