VLOOKUP関数とMATCH関数を使って検索を効率的に行なう

HLOOKUP関数とMATCH関数を使って効率的に表を検索するでHLOOKUP関数を使って得点を検索する方法を紹介しました。
今度は、VLOOKUP関数を使って行なう方法を紹介します。

送信者 OpenOffice
このサンプルファイルは、SKYDRIVEからcalc131.odsをダウンロードしてください。
HLOOKUP関数は、指定した範囲の一番上の行の値を検索して、その下の、指定した行の値を返す関数でした。
VLOOKUP関数は、指定した範囲の左端の列の値を検索し、その右側の、指定した列の値を返す関数です。

関数名:VLOOKUP関数
書式:=VLOOKUP(検索値;範囲;列番号;検索の型)
何ができる:指定した範囲の一番左の列の値を検索して範囲内の対応するセルの値を返します。
平たく書くと:=VLOOKUP("屋久島ひろ子";A1:E8;3;0) でA1:E8の表の一行目から、屋久島ひろ子を検索し、3列目にある点数を返します。


HLOOKUP関数を使って検索したときにも紹介したように、こちらでもリストによる選択入力とMATCH関数による列に自動選択ができるようにします。
H1セルには$Sheet1.$A$2:$A$8の内容が選択入力出来るように設定しています。

検索したい名前と科目をリスト形式ににして選択入力できるようにする

  1. H1セルを選択し、ツールバーから、データ>入力規則をたどります。
  2. 条件のタブをクリックします。
  3. 入力値の種類からセルの範囲を選択すると、ソースを入力する枠が現れます。
  4. ここで一度クリックした後、表からA2:A8をマウスで選択してマウスを放します。
  5. ソースに$Sheet1.$A$2:$A$8が自動的に入力されます。

これでOKをクリックすると、名前がH1セルに反映され選択できるようになります。
これで、H3セルの関数の数式は =VLOOKUP(H1;A1:E8;3;0) になり、名前をその都度数式に入力する必要がなくなりました。

同様に科目もH2セルに上のプロセスを通してB1;E1の内容が反映されるようにします。



MATCH関数で列番号が、VLOOKUP関数に自動的に反映されるようにする

次にMATCH関数を使って、B1:E1のなかから、H2に選択した科目が表の中の何列目にあるか、自動的に選択できるようにします。
関数名:MATCH関数
書式:=MATCH(検索値;範囲;検索の型)
何ができる:検索したい値が範囲の中で何番目の行または列にあるかを返す。
平たく書くと:=MATCH(H2;A1:E1;0) でA1:E1の範囲から、H2に入力されている値(ここでは数学)が何番目にあるかを返します。ここでは3が返されます。
 *検索の型で0を指定すると、検索値と完全に一致する値が入力されている行または列が返される値になります。

これでこれで、=VLOOKUP(H1;A1:E8;3;0) にMATCH(H2;A1:E1;0)をあてはめると、
=VLOOKUP(H1;A1:E8;MATCH(H2;A1:E1;0);0)
となり、名前、科目ともその都度入力する手間がかからなくなります。


この記事をクリップ!