今回はINDEX関数を使って運賃表をさくせいしましょう。
(a) 乗車駅コードと降車駅コードを入力すると、「料金」を表示するようにする。
(b) 「料金」には¥記号を付ける。
データの入力
まず、Excelでつぎのような「JR運賃表」を作成します。
INDEX関数
(1)INDEX関数
表の行と列を番号で指定し、その交差する位置にあるセルのデータを取り出すには、INDEX関数を利用します。
=INDEX(範囲,行番号,列番号)
指定した範囲で、行番号と列番号で指定したセルのデータを取り出す。
行番号は指定した範囲の上端から、列番号は指定した範囲の左端からの数を指定します。
使用例:
=INDEX(C5:E13,2,3)
セルC5からE13までの範囲で、2行目と3列目の交差する位置にある値を取り出す。
「ワンポイントアドバイス」
範囲で指定した各領域が1行または1列の場合には、行番号、列番号はそれぞれ省略することができます。
範囲が1行のみの場合 INDEX(範囲 , , 列番号)
範囲が1列のみの場合 INDEX(範囲 , 行番号)
(2) INDEX関数の入力
この例題はLOOKUP関数と同じように、あとでデータを入力することを前提としています。
乗車駅コードと降車駅コードが入力されるまで、セルB17とA18には何も表示しないようにするために、ここでもIF関数を利用します。
さらに、乗車駅コードと降車駅コードについての複合条件なので、論理演算子の「OR」を利用します。
また、この例題のINDEX関数は、表の数値(料金)の部分だけを範囲として指定し、セルB16に入力する降車駅コードの数字を行番号、セルB15に入力する乗車駅コードの数字を列番号として指定します。
①セルB17に「=IF(OR(B15=””,B16=””),””,INDEX(B4:D12,B16,B15))」と入力します。
つまり、「B15とB16がどちらか一つでも入力がなかったら、B17セルは空白(“”)にする」
ということです。
②セルA18に「=IF(B17=””,””,”※料金は、運賃と特急料金の合計です”)」と入力します。
料金が表示された際には、「※料金は、運賃と特急料金の合計です」と表示するようにします。
あとは表の体裁を各自で整えて完成です。
と、まあ、INDEX関数について解説してはみたものの、私自身使いこなしているかというとそうではありません。
確かにINDEX関数は便利なのですが、IF関数やVLOOKUP関数などで代用できるシーンが多いからです。
しかし覚えていたら便利なのは確かです。
INDEX関数という存在を知っておくだけでも、あとは調べれば使い方はどうにでもなるので、「こういう関数がある」ということだけでも知っておくといいでしょう!