VLOOKUPは、関数のひとつで、条件に合ったデータを縦に探して、その右のデータを返す関数です。書式は

VLOOKUP (検索値, 範囲, 列番号, 検索の型)

です。

VLOOKUP を指定すると、検索値と一致するものを範囲のいちばん左の列から探し、その列番号より1少ない数だけ右のセルにあるデータを返します。

つまり、

A B C
1 とうきょう 東京 Tokyo
2 ゆうらくちょう 有楽町 Yurakucho
3 しんばし 新橋 Shinbashi
4 はままつちょう 浜松町 Hamamatsucho
5 たまち 田町 Tamachi
6 しながわ 品川 Shinagawa

という表がったときに、任意の場所に

=VLOOKUP("しんばし",$A$1:$C$6,2)

と入力すると、A1からA6までのセルからしんばしを探し出して、2 - 1だけ右にある

新橋

を表示します。

ところで、そのセルをひとつ右のセルにコピーしたらどうなるでしょうか。普通、Shinbashiが表示されると思いますが、表示はやはり新橋です。というのは、ひとつ右のセルにコピーしてもやはり中身は

=VLOOKUP("しんばし",$A$1:$C$6,2)

で、

=VLOOKUP("しんばし",$A$1:$C$6,3)

にはなってくれないのです。これでは困ってしまいますね。だからといって、最初のセルを呼び出すセルの名前を使って

=VLOOKUP("しんばし",$A$1:$C$6,B1)

のようにすることはできません。

しかし、ここでひとつだけ方法があります。最初のセルを

=VLOOKUP("しんばし",$A$1:$D$6,COLUMNS($A$1:B1))

のようにするのです。COLUMNSの最初の$A$1には、範囲の左端に当たるセルを入れます。(行はどの行を選んでも同じ結果になります)これならば右にコピーすれば

=VLOOKUP("しんばし",$A$1:$D$6,COLUMNS($A$1:C1))

となり、Shinbashiが表示されます。