【Excel】INDEX関数の使い方が超わかる!配列を使う方法も紹介
スポンサーリンク

INDEX関数は、「指定した範囲(表)の、行番号と列番号の位置にある値を抽出する」関数です。

基本的な構文と使い方はこちら。

ExcelのINDEX関数の範囲を入力する構文
ExcelのINDEX関数の基本的な使い方の図
行の番号と列の番号を指定する、といったシンプルな関数ですね。
他の関数と組み合わせたりはしますが、この使い方が多いでしょう。

今回の例では「領域番号」を省略しています。
領域番号については下の 領域番号を指定する使い方で説明しています。

じつはINDEX関数、範囲を複数指定することができます。
複数の範囲?なんじゃそらって感じですよね。

そして基本的なものとは別に、構文がもう1つあります。

ExcelのINDEX関数の配列を入力する構文
「配列」を使うという、一見変わった使い方ができるんです。
そして「配列(範囲)を返す」という使い方も。

文字だけだとわかりづらいですが、後の項目でイメージといっしょにまとめているのでご安心ください。
⇒ 【応用編1】INDEX関数で配列を出力する方法
⇒ 【応用編2】INDEX関数の構文と使い方2 配列を指定する方法

「実はこんなこともできちゃうよ」と、なにげに奥が深い関数でもあります。
まずは基本的な使い方から、ちょっと難しい使い方まで紹介します。

Contents

  • 1 INDEX関数の基本的な使い方 範囲指定(参照指定)する方法
    • 1.1 領域番号を指定する使い方
    • 1.2 範囲が1行なら行番号を省略可能
    • 1.3 範囲が1列なら列番号を省略可能
  • 2 INDEX関数 演習問題1
    • 2.1 INDEX関数 演習問題1 解答
  • 3 【応用編1】INDEX関数で配列を出力する方法
  • 4 【応用編2】INDEX関数の構文と使い方2 配列を指定する方法
  • 5 INDEX関数 演習問題2
    • 5.1 INDEX関数 演習問題2 解答
  • 6 MATCH関数と組み合わせてより便利に!

INDEX関数の基本的な使い方 範囲指定(参照指定)する方法

基本的な使い方は冒頭で述べたとおりなのですが、構文のなかでわかりづらいのが「領域番号」。
INDEX関数は、複数の範囲を指定して、どれを使用するか選ぶことができるんです。

領域番号を指定する使い方

ExcelのINDEX関数で領域番号を指定する使い方
この例では、INDEX関数で範囲を2つ指定しています。
そして2つめ(右側)の範囲から値を抽出しています。

「領域番号」は、指定した範囲のなかから、何番目のものを使用するか、というものだったんですね。
省略した場合は、領域番号が1とみなされます。

範囲が1行なら行番号を省略可能

ExcelのINDEX関数で行番号を省略する使い方
指定した範囲が1行の場合には、行番号を省略することができます。
1行しかないのだから1行目から出力するに決まっている!ということですね。

領域番号は省略しています。

範囲が1列なら列番号を省略可能

ExcelのINDEX関数で列番号を省略する使い方
指定した範囲が1列の場合には、列番号を省略することができます。
こちらも1列しかないのだから出力はその列だ!ということですね。

領域番号は省略しています。

この例では、範囲と行しか指定していません。
列も領域番号も省略可能なため、こういった書き方もできるんですね。
ちなみに行や列、領域番号の順番を入れ替えて書くことはできません。

INDEX関数 演習問題1

ExcelのINDEX関数の演習問題1
こちらの表を用いて、以下のINDEX関数を入力した場合、どの値が抽出されるでしょうか

  1. =INDEX(A3:B7,3,1)
  2. =INDEX((A3:B7,D3:E7),2,2,2)
  3. =INDEX((A3:B7,D3:E7),5,2)

INDEX関数 演習問題1 解答

  1. S000003
    範囲指定:表1
    3行目、1列目
  2. 菊池 恵子
    範囲指定:表1と表2
    2行目,2列目
    領域番号:2
  3. 小川 健
    範囲指定:表1と表2
    5行目、2列目
    領域番号を省略(1番目の表1が指定される)

【応用編1】INDEX関数で配列を出力する方法

ここからは応用編です。
INDEX関数は、行番号や列番号に「0」を指定することで、配列を出力することができます。

たとえば行番号に0を入力すると、指定した列のすべての行データを出力します。
列番号に0を入力すると、指定した行のすべての列データを出力します。
それを別の関数にさらに入力することもできます。

配列とは、「いくつかの値をひとまとめにしたもの」のことです。
どういうこっちゃ?と思うかもしれません。
例を見てみましょう。

ExcelのINDEX関数で配列を出力する使い方
この例では、行の指定を「0」にしています。
すると、「すべての行を配列にして出力」します。
内部では、[100, 80, 70, 150, 120]の5つの値をひとまとめにして出力しています。

そこで、その値をSUM関数の入力に使っています。
結果は520となっていますが、これは 100 + 80 + 70 + 150 + 120 = 520 となるためです。

【応用編2】INDEX関数の構文と使い方2 配列を指定する方法

ExcelのINDEX関数の配列を入力する構文
INDEX関数のもうひとつの構文がこちらです。

ひとつめの入力値が「範囲」ではなく「配列」となっています。
さらに「領域番号」の指定がなくなりました。
使用例を見てみましょう。

ExcelのINDEX関数で配列を指定する使い方
今回のポイントは、{2,3,4; 5,6,7; 8,9,10}の部分です。
{}で数値を囲むことによって、配列をつくることができます。
「,」区切りで列を、「;」区切りで行を生成します。
緑の点線で囲まれた部分は、つくった配列のイメージです。

お手元にExcelがある場合、ぜひこのINDEX文をどこかのセルに入力してみてください。
表などを用意せずとも、「9」と出力されるはずです。

正直とてもイメージしづらく、なかなか使いどころは限られると思います。
「こんなこともできるんだな~」程度で大丈夫です。

INDEX関数 演習問題2

以下の式を入力したとき、答えの数字はいくつになるでしょうか。

=SUM(INDEX({2,3,4;5,6,7}, 2, 0))

今回の問題は、配列を入力と出力、いずれにも使っています。
頭がこんがらがるかもしれませんが、じっくり考えてみてください。

INDEX関数 演習問題2 解答

ExcelのINDEX関数の演習問題2の解答
解答は18となります。
内側のINDEX関数では、列番号を「0」としています。
そのため2行目の全列、{5, 6, 7}のデータがSUM関数に入力されます。

よって 5 + 6 + 7 = 18 となるわけですね。

MATCH関数と組み合わせてより便利に!

今回、INDEX関数単独での使い方を紹介しました。
じつはINDEX関数は、MATCH関数と組み合わせることで、表の中から任意の値を抽出するときとても便利なんです。
こちらの記事でまとめていますので、ぜひ読んでみてください。

【Excel】INDEX関数の使い方が超わかる!配列を使う方法も紹介
【Excel】INDEX・MATCH関数の使い方 VLOOKUPとの違いも解説!
2019.5.15
しろねこ うーん。どうしたらいいんだろう… くろねこ どうしたんだい、しろねこくん しろねこ あ、くろねこさん この表から、D列の組合員IDを検索値として、 C列の氏名を取り出したいんです でもVLOOKUP関数じゃできなくて… くろねこ なるほど、探したいデータが組合員ID=D列より左側にあるんだ...
スポンサーリンク
関数の関連記事
  • 【Excel】四捨五入を行うROUND関数の使い方 桁数を指定できるんです
    【Excel】四捨五入を行うROUND関数の使い方 桁数を指定できるんです
  • 【Excel】文字列を数値に変換するVALUE関数の使い方
    【Excel】文字列を数値に変換するVALUE関数の使い方
  • 【Excel】エラーを非表示、無視するIFERROR関数の使いかた
    【Excel】エラーを非表示、無視するIFERROR関数の使いかた
  • 【Excel】IF関数で「もし~なら」を解決!入れ子にして使う方法も紹介
    【Excel】IF関数で「もし~なら」を解決!入れ子にして使う方法も紹介
  • 【Excel】データ数のカウントはCOUNTA関数!空白以外のセルを数えよう
    【Excel】データ数のカウントはCOUNTA関数!空白以外のセルを数えよう
  • 【Excel】数値のカウントにはCOUNT関数!使い方と構文を紹介
    【Excel】数値のカウントにはCOUNT関数!使い方と構文を紹介
おすすめの記事
【Excel】SUM関数の使い方 足し算の範囲をいくつも設定できるんです
関数
【Excel】SUM関数の使い方 足し算の範囲をいくつも設定できるんです
しろねこ 次はこのセルを足して、次はこのセルを… よいしょ、よいしょ くろねこ しろねこくん、そんなに一生懸命どうしたんだい? しろねこ あ...
【Excel】データ数のカウントはCOUNTA関数!空白以外のセルを数えよう
関数
【Excel】データ数のカウントはCOUNTA関数!空白以外のセルを数えよう
A B 1 商品 価格 2 りんご 100 3 みかん 80 4 バナナ 70 5 キャベツ 150 6 レタス 120  7 商品の数 0...
【Excel】平均値の出し方はAVERAGE関数で!使い方を解説
関数
【Excel】平均値の出し方はAVERAGE関数で!使い方を解説
しろねこ 足して、合計して、さいごに割って… できた! くろねこ しろねこくん、何をしているんだい? しろねこ あ、くろねこさん この表で平...
【Excel】四捨五入を行うROUND関数の使い方 桁数を指定できるんです
関数
【Excel】四捨五入を行うROUND関数の使い方 桁数を指定できるんです
エクセルで桁数を指定して四捨五入を行いたいときは、ROUND関数を使います。 小数点の桁数を指定するだけでなく、整数の何桁目で四捨五入をする...
【Excel】文字列を数値に変換するVALUE関数の使い方
関数
【Excel】文字列を数値に変換するVALUE関数の使い方
文字列を数値に変換する、VALUE関数を紹介します。 どういうことかというと 「'3」などと入力されて文字列扱いされたり 「3」と全角で入力...
プログラミングの変数とは?使う理由も含めてわかりやすく説明!
プログラミング
プログラミングの変数とは?使う理由も含めてわかりやすく説明!
「プログラミングの『変数』ってなんなんだろう?」 「変数ってなんのために使うの?」 いまいちピンとこないし、『変数』というだけでなんだか難し...
【Excel】合計の条件を2つ以上指定できる!SUMIFS関数の使い方
関数
【Excel】合計の条件を2つ以上指定できる!SUMIFS関数の使い方
※SUMIF関数についてはこちらでまとめています。 A B C 1 商品 価格 在庫数 2 りんご 100 17 3 みかん 80 22 4...
【Excel】平均値から0を除くにはAVERAGEIF関数を使おう
関数
【Excel】平均値から0を除くにはAVERAGEIF関数を使おう
しろねこ くろねこさん! この表で0を除いた在庫数の平均を出したいです! A B C D 1 商品 種類 価格 在庫数 2 りんご 果物 1...