社長ブログ社長ブログ

Excelの「INDEX関数」

オントラックの財務モデリング担当 北川です。
今日は「INDEX関数」について、ご紹介します。

INDEX関数は、セル範囲の中から指定した行と列にあるセルの値を返す関数です。
INDEX関数の書式は、INDEX(配列、行番号、[列番号])です。
配列は必ず指定します。
行番号、列番号は基本的には必要ですが、配列が1行、または1列の場合は、対応する行番号、または列番号を省略することができます。

具体的に見てみましょう。
例えば、以下のC11セルには=INDEX(B3:D7,C9,C10)と入力しています。
この時、指定したセル範囲(B3:D7)の左上から数えて、2行(C9)、3列(C10)にあるセル(D4)の数字(12)が表示されます。

以下のように、配列が1行の場合は、行番号を省略し、列番号だけ指定することで、指定したセル範囲(B3:D3)の3行目(C10)のセル(D3)にある数字(11)を表示することができます。

配列が1列の場合も同様です。

INDEX関数の基本的な使い方はお分かりになったかと思います。
実務で使う際には、MATCH関数と合わせて使うと非常に便利です。

MATCH関数は、セルの範囲で指定した項目を検索し、その範囲内の項目の相対的な位置を返します。
つまり、検索したい項目がセル範囲の何番目にあるかを教えてくれる関数です。

MATCH関数の書式は、MATCH(検査値、検査範囲、[照合の型])です。
検査値は必ず指定します。検査範囲の中で照合する値、つまり検索したい項目を指定します。
検査範囲も必ず指定します。検索するセルの範囲を指定します。
照合の型は省略可能です。照合の種類は1、0、-1の数値のいずれかを指定し、省略した場合は1となります。
照合の型が1の時は検査値以下の最大値を、照合の型が0の場合は検査値と一致する最初の値を、照合の型が-1の時は検査値以上の最小値を検索します。
なお、照合の型が1の時は検査範囲を昇順に、照合の型が-1の時は検査範囲を降順に並べておく必要があります。

今、以下のセル範囲(D5:G9)のように四半期のデータがあるとして、FY2016の3Qのデータを見たいとします。

FY2016はFY2015~FY2019の2番目にあたります。これをMATCH(D12,C5:C9)で求めます。
次に、3Qは1Qから4Qの3番目にあたります。同じようにMATCH(D13,D4:G4)で求めます。
これらの数字とINDEX関数を使えば、図のように四半期のデータから求めることができます。

もちろん、INDEX(D5:G9,MATCH(D12,C5:C9),MATCH(D13,D4:G4))として、INDEX関数の中にMATCH関数を二つ使えば、一度に求めたいデータを求めることもできます。
ただ、数式が長くなってしまうのと、MATCH関数で思った通りの数字が正しく求められているかすぐには分かりませんので、欲しい数字がデータの何行何列にあるのか、別のセルで求めることをお勧めします。

エクセルのスキルアップで働き方改革を!


次回の財務モデリング基礎講座は9月15日(日)です。お申し込みはこちらからどうぞ。

動画配信開始