表の行見出しと列見出しの交差するセルの値を抜き出す方法。
どちらの値も定数でなくても対応できる。
[縦軸が粗点、横軸が年齢で、年齢層に応じた評価点を出す場合。]
A61に粗点、B61に年齢を入れ、評価点がC61に表示される。
・VLOOKUP関数の列番号の部分にHLOOKUP関数を使う。
=IF(OR(A61=0,B61=0),””,VLOOKUP(A61,A2:U53,HLOOKUP(B61,A1:U2,2)))
最初の部分はエラー処理。
「もし(A61=0かB61=0なら、空白にするよ)」
ここの部分には、サンプル以外の値の場合、エラーメッセージを表示してもよい。
HLOOKUPについて。
HLOOKUP(B61,A1:U2,2)
「A1からU2を参照して、その一番上の行がB61なところを探すよ。
その行の、上から2番目の値を表示するよ。」
今回の場合は、年齢が「22」なので、22の下にある「4」となる。
この「行番号」は、VLOOKUPで使用するため、A列から1,2,3と続き番号にする。
A列には見出しが入っているので2からスタートしている。
VLOOKUPについて。
VLOOKUP(A61,A2:U53,4)
「A2からU53を参照して、左端列がA61の列を探すよ。その列の、左から4番目の値を表示するよ。」
今回の場合は、
HLOOKUP(年齢が22歳の列を探すよ。探す場所はA1からU2の間だよ。上から2番目だよ)
を使って、「左から4番目だよ」という答えを出します。
VLOOKUP(粗点37点の行を探すよ。探す場所はA1からU53の間だよ。左から4番目だよ。)
だから、評価点は16点だよ。
という意味になります。
よくみたら、INDEX関数ってのがあるのね。
あるのね、っていうか基本的な関数っぽいね・・・