[Excel]INDEX関数(セル参照形式)

2019年9月16日

検索/行列

INDEX関数(セル参照形式)

セル参照または配列から、指定された位置の値を返します。

Excel for Office 365 Excel for Office 365 for Mac Excel 2016 Excel 2013 Excel 2010 Excel 2007 Excel 2016 for Mac Excel for Mac 2011 Excel Online Excel for iPad Excel for iPhone Excel for Android タブレット Excel for Android フォン Excel Mobile Excel Starter 2010

機能

指定された行と列が交差する位置にあるセルの参照を返します。隣接しない複数のセル範囲を指定した場合、その中から任意の領域を選択できます。

構文

INDEX(対象範囲 , 行番号 , [列番号] , [領域番号])

引数 説明 引数の指定 既定値
対象範囲 1 つまたは複数のセルの参照を指定します。
範囲として複数選択された領域を指定する場合は、範囲をかっこ () で囲み、複数選択を構成するそれぞれの領域を半角のコンマ (,) で区切ります。
範囲で指定した各領域が 1 行または 1 列である場合、行番号または列番号はそれぞれ省略することができます。たとえば、範囲が 1 行のみである場合は、INDEX(範囲,列番号) と指定できます。
必須 (無し)
行番号 範囲の中にあり、セル参照を返すセルの行位置を数値で返します。 必須 (無し)
列番号 範囲の中にあり、セル参照を返すセルの列位置を数値で返します。 省略可能 1
領域番号 行番号と列番号が交差する位置を返す参照の範囲を 1 つ選択します。最初に選択または入力された領域の領域番号が 1 となり、以下、2 番目の領域は 2 というように続きます。領域番号を省略すると、INDEX で領域 1 が使用されます。 ここで表示される領域はすべて 1 つのシート上に置かれている必要があります。 他の領域と同じシート上に存在しない領域を指定した場合、#VALUE! エラーが発生します。 相互に異なるシート上に置かれている範囲を使用する必要がある場合は、INDEX 関数の配列形式を使用し、別の関数を使用して配列を形成する範囲を計算することをお勧めします。 たとえば、CHOOSE 関数を使用して、どの範囲が使用されるかを計算することができます。
たとえば、範囲として (A1:B4,D1:E4,G1:H4) のような複数選択領域が指定されている場合、領域番号の 1 は A1:B4、領域番号の 2 は D1:E4、領域番号の 3 は G1:H4 となります。
省略可能 1

解説

INDEX 関数は、まず「対象範囲」と「領域番号」により、参照する範囲を決定します。一般的な用途では、「対象範囲」は単一の領域(連続したセル範囲,A1:A10やB2:C100など)を指定するため、「領域番号」は「1」を指定するか、省略します(省略すると既定値として「1」が指定されます)。次に行番号と列番号から参照するセルを決定します。行番号の「1」 は選択された範囲の先頭行 (上端行) を指定し、列番号の 1 は選択された範囲の先頭列 (左端列) を指定します。INDEX 関数が返すセル参照は、行番号と列番号が交差する点にあるセルの参照となります。

行番号または列番号に 「0」を指定すると、列または行全体の参照がそれぞれ返されます。

行番号、列番号、領域番号には、範囲内のセルを指定する必要があります。範囲外のセルを指定すると、エラー値 #REF! が返されます。

行番号と列番号を省略すると、領域番号で指定された範囲内の領域が返されます。

INDEX 関数の戻り値はセル参照となり、他の数式はこれを通常のセル参照と同様に扱います。INDEX 関数の計算結果は、セル参照または値として使用されます。たとえば、「 = ROW(INDEX(A1:Z100 , 2 , 2))」 という数式は、「 = ROW( B2 ) 」と同じ戻り値になります。

下記に、INDEX関数の挙動を示します。

A B C D E
1 1 2 3 4 5
2 2 4 6 8 10
3 3 6 9 12 15
4 4 8 12 16 20
5 5 10 15 20 25
6
7 1 1 1 1 1
8 2 4 8 16 32
9 3 9 27 81 243
10 4 16 64 256 1024
11 5 25 125 625 3125
数式 結果 解説
=INDEX(A1:E5 , 1 , 1 ) 1 対象範囲(掛け算表)「A1:E5」の1行1列目のセルは「A1」なので、A1セルの値「1」を返します。
=INDEX(A1:E5 , 2 , 4 ) 8 対象範囲(掛け算表)「A1:E5」の2行4列目のセルは「D2」なので、D2セルの値「8」を返します。
=INDEX(A1:E5 , 5 , 5 ) 25 対象範囲(掛け算表)「A1:E5」の5行5列目のセルは「E5」なので、E5セルの値「25」を返します。
=INDEX(A1:E5 , 6 , 5 ) #REF! 「行番号」が対象範囲「A1:E5」を超過しているため、エラー値#REF!を返します。
=INDEX(A1:E5 , 5 , 6 ) #REF! 「列番号」が対象範囲「A1:E5」を超過しているため、エラー値#REF!を返します。
=INDEX(A1:E5 , 5 , 5 , 1) 25 「領域番号」に「1」を指定したが、これは「領域番号」省略時の既定値と同一のため、「=INDEX(A1:E5 , 5 , 5 )」と同一の値を返します。
=INDEX(A1:E5 , 5 , 5 , 2) #REF! 「領域番号」に「2」を指定したが、「対象範囲」は単一領域であるため、エラー値#REF!を返します。
=INDEX((A1:E5 , A7:E11) , 5 , 5 , 2) 3125 「対象範囲」に2つの領域(「A1:E5」と「A7:E11」)を指定しており、かつ「領域番号」に「2」を指定したため、参照範囲は「A7:E11」となり、その5行5列目のセルである「E11」の値「3125」を返します。
=SUM( INDEX( A1:E5 , 0 , 0 )) 225 「行番号」及び「列番号」に「0」を指定することで、対象範囲全体(A1:E5)を返します。
=SUM( INDEX( A1:E5 , 1 , 0 )) 15 「行番号」に「0」を指定することで、「対象範囲」及び「列番号」に対応する列全体(A1:A5)を返します。
=SUM( INDEX( A7:E11 , 0 , 2 )) 55 「列番号」に「0」を指定することで、「対象範囲」及び「行番号」に対応する列全体(B7:B11)を返します。

Excel関数

Posted by 黒箱