応募する

応募する

Tel.03-4500-9361 / 受付時間:平日10:00~19:00

こちらは全て株式会社エージェントゲートでの採用・募集となります。

初心者向け|INDEX関数をマスターしてExcelを使いこなそう!

一般事務や営業事務などのオフィスワークのみならず、Excelは自宅でのパソコンワークにも幅広く活躍する作業ツールです。

近年のリモートワークの普及により、オンラインで作業可能なGoogleスプレッドシートを活用されている方も多いでしょう。

Excelでは関数を使えるか使えないかで業務の幅は変わってきます。そのため、パソコンで作業する方には覚えておきたい必須項目といえるでしょう。

今回の記事では、Excel関数のひとつであるINDEX関数の使い方についてお伝えしていきます。

構文の作り方やさらにエラーが起きてしまう理由と解決方法についても紹介していますので、ぜひこの機会にINDEX関数をマスターしてくださいね。

目次

INDEXの意味

そもそも英語におけるINDEXの意味は本などの索引、目録です。

例文Is there an index to the book?(その本には索引はついていますか。)

ほかにも、指標や指針、表示するもの、しるしといった意味もあります。

例文The index rose10% from the preceding month.(指標は前月対比で10%上昇した。)

それではExcel関数でいうところのINDEXとは、どのような使われ方をしているのでしょうか。

INDEX関数とは?

INDEX関数とは、Excelの行と列が交差したセルに数値を返す関数を指します。

関数で範囲とセルをそれぞれ指定することで、その場所の数値が反映されるようになります。

INDEX 関数には、次の2つの使い方があります。

  1. 指定したセルまたはセルの配列の値を求める場合は、「配列形式」を参照してください。
  2. 指定したセルの参照を求める場合は、「セル参照形式」を参照してください。

1.配列形式

行番号と列番号で指定されるテーブルまたは配列の値を返します。

INDEX 関数の1番目の引数が配列定数のときは配列形式を使います。

配列形式の構文

INDEX(配列, 行番号, [列番号])

INDEX関数の配列形式には次の引数があります。

配列

配列は必須項目で、セル範囲または配列定数を指定します。

配列が1行または1列のみの場合、それぞれ行番号または列番号を省略することができます。また、配列が複数行および複数列で構成され、行番号または列番号のどちらか一方しか指定されていない場合は、配列の中にある行または列全体の配列が返されます。

行番号

行番号は列番号が存在する場合を除いて必須項目です。配列の中にあり、値を返す行を数値で指定します。一方、行番号を省略する場合は列番号が必要になります。

列番号

列番号は任意で指定します。配列の中にあり、値を返す列を数値で指定し、列番号を省略する場合は行番号が必要になります。

なお、行番号と列番号の両方の引数を使用している場合は、行番号と列番号の共通部分にあるセルの値が INDEX関数によって求められます。

行番号と列番号には、配列内のセルを指定する必要があるため、配列の範囲外のセルを指定すると、INDEX は「 #REF! 」となりエラーが表示されます。

また、行番号または列番号を 0 (ゼロ) に設定すると、列全体または行全体の値の配列がそれぞれ INDEX によって返されます。配列として返される値を使用するには、INDEX 関数を配列数式として入力することを覚えておきましょう。

注意現在のバージョンの Microsoft 365 を使用している場合は、出力範囲の左上のセルに式を入力し [Enter] キーを押すと、式を動的な配列の数式として確定することができます。 それ以外の場合は最初に出力範囲を選択し、出力範囲の左上のセルに数式を入力、続けてCtrl + Shift + Enter キーを押して確定し従来の配列数式として数式を入力する必要があります。こうした作業によって、数式の先頭と末尾に中かっこが挿入されるので確認してみてください。

出典:Microsoftサポート|INDEX 関数

2.セル参照形式

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

セル参照形式の構文

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

INDEX 関数の参照形式には、次の引数があります。

参照    

参照は必須で1つまたは複数のセルの参照を指定します。隣接しない範囲を参照として入力する場合は参照をかっこで囲みます。

参照の中の各領域に行または列が1つしか含まれていない場合は、行番号または列番号の引数はそれぞれ省略することができます。 

たとえば、範囲が 1 行のみである場合は、INDEX(範囲,列番号) と指定できます。

行番号

行番号は必ず指定してください。その結果、参照範囲の中にあり、セル参照を返すセルの行位置を数値で返します。

列番号

行番号は任意です。参照範囲の中にあり、セル参照を返すセルの列位置を数値で返します。

領域番号

領域番号は省略可能な項目です。

行番号と列番号の共通部分を返す参照の範囲を選択します。

最初に選択した箇所もしくは入力された領域の領域番号が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が範囲内の最初の行、列番号1が最初の列というように続きます。 INDEX関数によって返される参照は、行番号と列番号の共通部分です。

行番号または列番号を 0 (ゼロ) に設定すると、列全体または行全体の参照がそれぞれ INDEX によって返されます。

また、行番号、列番号と領域番号には、配列内のセルを指定する必要があります。

配列の範囲外のセルを指定すると、#REF!エラーが表示されます。 

行番号と列番号を省略すると、領域番号で指定される参照の領域が INDEX関数によって返されます。

INDEX 関数の計算結果はセル参照となり、他の数式はこれを通常のセル参照と同様に扱います。 INDEX 関数の計算結果は、セル参照または値として使用されます。 

たとえば、CELL(“width”,INDEX(A1:B2,1,2)) という数式は、CELL(“width”,B1) と同じ結果になります。 これは CELL 関数が、INDEX 関数の計算結果を通常のセル参照と同じであると解釈するためです。 一方、2*INDEX(A1:B2,1,2) のような数式では、INDEX 関数の計算結果はセル B1 に入力されている数値に変換されます。

出典:Microsoft  Ignite|WorksheetFunction.Index メソッド (Excel)

応用編|INDEX関数とMATCH関数の組み合わせについて

ここまで説明してきたINDEX関数ですが、実はINDEX関数は単体よりも他の関数との組み合わせで、威力を発揮します。

ここから紹介するMATCH関数を組み合わせることで、VLOOKUP関数より使い勝手のよい関数に変わるのです。MATCH関数についても詳しく解説していくので、応用編としてぜひご覧ください。

MATCH関数とは

まずMATCH関数の基本の使い方をみていきましょう。

構文:MATCH(検査値,検査範囲,[照合の種類])検査値:位置を求める値検査範囲:検査値を含むセル範囲を指定します照合の種類:検査値を探す方法で省略または「1」を指定すると検査値以下の最大値。「0」を指定すると検査値と完全一致。「-1」を指定すると検査値以上の最小値を検索します。

MATCH 関数は範囲のセルの範囲で指定した項目を検索し、その範囲内の項目の相対的な位置を返します。

たとえば、範囲 A1:A3 に値 5、25、30が含まれている場合、数式「=MATCH(25,A1:A3,0)」を入力すると、範囲内では25が2番目の項目であるため、数字2が返されます。

これに対してVLOOKUP関数は検査値に対して右に検索します。

しかし、INDEX関数と組み合わせることで、MATCH関数は検査値の左にも検索可能になるのです。

そのため、VLOOKUP関数のように検査値から何番目といちいち数えなくてもよいメリットがあります。

あわせて読みたい|VLOOKUP関数とXLOOKUP関数について

今回の記事でINDEX関数とあわせてふれてきたVLOOKUP関数についてもおさらいしておきましょう。

VLOOKUP関数の構文を作成するには、4つの情報が必要になります。

構文=VLOOKUP(検索値、参照値を含む範囲、戻り値を含む範囲内の列番号、近似一致 (TRUE) または完全一致 (FALSE))
構文要素の解説検索する値、検索値とも呼ばれます。
検索値が含まれるセル範囲。 VLOOKUP が正常に機能するために、検索値は範囲の最初の列に必ず位置している必要があることに注意してください。 たとえば、検索値がセルC2にある場合、範囲はC列から始まる必要があります。
戻り値を含む範囲内の列番号。 たとえば、B2:D11を範囲として指定した場合、B を最初の列、Cを2番目というように数えます。
必要に応じて、戻り値として近似一致を検索する場合はTRUE、完全一致を検索する場合は FALSE を指定できます。 何も指定しない場合、既定値はTRUE、つまり近似一致を常に返します。
引用:Microsoftサポート|VLOOKUP 関数

VLOOKUP関数で行えることは全てINDEX関数とMATCH関数の組み合わせで再現できます。逆に、INDEX関数とMATCH関数の組み合わせでは、一部の機能しかVLOOKUP関数には再現できません。

そのため、INDEX関数とMATCH関数の組み合わせは、多く存在するExcel関数の中でも上位互換といわれています。

一方で、XLOOKUP関数というものもあります。

これは2020年1月30日からOffice 365ユーザー向けに配信されており、強化されたVLOOKUP関数のような関数です。

構文=XLOOKUP(検索値, 検索範囲, 戻り範囲, 見つからない場合, 一致モード, 検索モード)

引数が6つもあるため一見難しそうに見えますが、必須の引数は最初の3つのみです。

VLOOKUP関数では[列番号]となっている第3引数が、XLOOKUP関数では[戻り範囲]となっています。左から順に列番号を数える必要がなく、値を取り出すセル範囲を直接指定すればいいので、XLOOKUP関数のほうがわかりやすくなったといえます。

VLOOKUP関数の後継版として、気になる方はぜひ調べてみてくださいね。

参考:Microsoftサポート|XLOOKUP 関数

まとめ

いかがでしたでしょうか。

今回の記事では、INDEX関数の構文の作り方や基本的な使い方、MATCH関数との組み合わせについて解説してきました。

INDEX関数は覚えてしまうととても使いやすいため、日頃からExcelを多用している方にとっては、すぐに覚えられる関数です。

MATCH関数など、複数の関数と組み合わせて使うことで、さまざま作業効率をアップさせてくれます。

ぜひ本記事の内容を参考に、INDEX関数をマスターし、スムーズに業務をこなしていきましょう。