京都ビジネス学院 舞鶴校

schoolpc.exblog.jp

能力評価・キャリア形成

Excelワザ_INDEX(インデックス)関数とINDIRECT(インダイレクト)関数

INDEX関数は、
指定された行と列が交差する位置にある
セルの参照(セルの場所)を返します。

書式=INDEX(範囲, 行番号, 列番号, 領域番号)

範囲:(必須)1 つまたは複数のセルの参照を指定します。
複数の範囲を指定する場合は、
範囲を()で囲み、構成するそれぞれの領域を「,」で区切ります。
行番号:(必須)範囲内のセル参照を返すセルの行位置を数値で指定します。
列番号:(必須)範囲内のセル参照を返すセルの列位置を数値で指定します。
領域番号:(省略可)複数の領域を指定した場合のみ数値で指定します。
最初の選択した領域が 1 になり、次の領域が 2 になります。
重要省略した場合は、1 として処理されます。

たとえば、
英会話のレッスン料を求めます。
月2回、4回、6回、8回のレッスン回数と
家族数1,2,3,
(家族数が多いほど、安くなる。)
行の範囲が、1月のレッスン数
列の範囲が、家族数
行、列の交差するセルの値を求めると
レッスン料が出ます。
b0186959_1284072.jpg

さらに、レッスン時間が
60分,90分,120分の3つの範囲で
それぞれ、料金が変わってきます。
この3つの範囲には、名前が定義されています。
b0186959_12922.jpg

60分の範囲が「時間60分」
90分の範囲が「時間90分」
120分の範囲が「時間120分」

また、B列の管理番号の末尾の番号が
1=60分 2=90分 3=120分の
レッスン時間となっています。
INDEX関数で式を立てましょう。
=INDEX((時間60分,時間90分,時間120分),MATCH(E5,一覧表!$E$4:$E$7,0),G5,RIGHT(B5,1))
(3つの範囲の中で( )を付けるのを忘れずに
一覧表シートのE4:E7(月2,4,6,8回の範囲)
に合致する(MATCH関数)行を求め
家族数に合致する列(G列)
行と列の交差するセルを、
領域番号と合致する範囲の中から
求める。領域番号の数字は
B列の管理番号の右(RIGHT関数)1字分を指定すると
求めることができます。)


さて、ここで、INDEX関数の領域が
複数(2つ以上)ある時、
INDIRECT関数を使うと、もう少し
式がスマートになります。

=INDIRECT(参照文字列)
■文字列として入力したセル番地や範囲名を、計算式で参照できる形に変換する。参照先を文字列で間接的に指定し、切り替え可能にする

F列に求めた時間〇分という文字を
範囲名に切り替えることができます。
=INDEX(INDIRECT(F5),MATCH(E5,一覧表!$E$4:$E$7,0),G5)
=INDIRECT(F5)というところで、
範囲名が指定できるわけです。
b0186959_12402579.jpg

この関数、なかなか使えます!066.gif(^v^)
[PR]
by school-pc | 2012-08-04 12:40 | Comments(0)