Excel において、次のような表があったとする。
| Date | Value 1 | Date | Value 2 |
|---|---|---|---|
| 7/16 | 1234 | 7/16 | 5678 |
| 7/17 | 1235 | 7/17 | 5679 |
| 7/20 | 1233 | 7/21 | 5680 |
| 7/21 | 1234 | 7/22 | 5681 |
すなわち、ある列と別の列のデータはほぼ一致しているが、所々で一方の列にあるデータが別の方ではないというような場合である。例えば、上の例では、一番目の列にある 7/20 というエントリーが、三番目の列には存在しない。
このような表において、基準となる列に入っている値と、同じ値を持つ列に対応する値を適切に同じ行に並べたいということがある。上の例で言うと、一番左の列に 7/21 という値が入っているので、三番目の列の 7/21 に対応する “5680″ を、一番左の列の 7/21 と同じ行におさめたいというような場合である。たとえば、日米の平均株価指数を比べるとき、日本は国民の祝日が多いので、日本の方の値がアメリカに比べて足りず、歯抜けすると言った場合である。
こんなときに使うと便利なのが、VLOOKUP 関数である。
VLOOKUP 関数の使い方は、
VLOOKUP(基準となる値, テーブル上の範囲, 合わせたい列の番号, フラグ)
となる。「基準となる値」とは、データをそろえるための基準となる値で、上記の例の場合は、一番左の列にある値になる。「テーブル上の範囲」とは、Excel 内で、そろえる値を探す範囲である。「合わせたい列の番号」とは、もしテーブル上の範囲においてそろう値が見つかった場合、対応する値をこの列から持ってくるようにと指示するために指定し、一番左から 1, 2, … と指定していく。フラグは、False のときは完全に値が一致する場合のみに返り値を渡し、True もしくは省略された場合には一つ小さい値を探して、返り値を渡す。
具体的には、次のようになる。
ここでは、A 列と同じ値を持つ C 列内の値に対応する D 列の値を、E 列におくことにする。つまり、E5 には、A5 と同じ値を持つ C4 に対応する D4 の値をおきたいということである。
まず、E2 に、式を定義する。VLOOKUP の第一引数は、ここでは基準となる値として、A2 を書いておく。第二引数は、テーブル内の範囲を指定するので、C2 から D5 までを指定する。このときに、E3 以下のどの行でもこの固定された範囲を使うので、$ マークを添えて、C$2:D$5 というようにしておく。第三引数は、この範囲のうちのどの列を使って表示するかを指定するので、ここでは二番目の列になるので、2 となる。最後の引数は、A 列内の値が指定された範囲内で見つからない場合は A 列の前の値を使うようにしたいので、論理値を True すなわち 1 と指定しておく。

こうして式を定義したあと、Return キーを押して式を確定して、E2 セルの右下の角をドラッグして下方向にマウスを動かせば、自動的に E3 から E5 までが埋まっていく。第四引数の論理値を True にしたおかげで、A 列にある “7/20″ という値が C 列に無い場合は、自動的にその前の値である “7/17″ を使うように指定されているので、E 列には、A 列で 7/17 および 7/20 と表示されている行に、ともに同じ値である “5679″ が埋まる。もちろん、当初期待していた 7/21 に対応する “5680″ という D 列の値が、E 列の5行目に正しく収まっている。
知らないとすごく大変だし、知っているとものすごく便利な機能なので、将来また使えるように書いておくことにする。




