エクセルでVLOOKUPを使う際、
「列ごとに数式を入れるのは面倒」
「横にコピーしたとき、自動的に反映されれば楽なのにな」
と思った事はありませんか?
VLOOKUP関数は、通常どおりに使用すると
縦コピーはできても、横コピーでは同じ項目が表示されてしまいますよね。
しかし、今回ご紹介する「COLUMN関数」をVLOOKUPに組み合わせて使用すれば、
縦も横もコピーするだけで自動反映されるようになります。
COLUMN関数は列の考え方が少しややこしいですが、
初めて使う方でも分かりやすいように体験型で説明します。

ぜひ一緒にやってみて、
VLOOKUP×COLUMNを使いこなしましょう!
VLOOKUPは横コピーできる?[4コマ]

「VLOOKUPは、横にコピーできる」
その方法があるなら、もちろん上司ねこだって知りたい!
今回は体験型の記事です。
皆さんも、ぜひ一緒にチャレンジしてみてください。
→ キャラ紹介ページ
サンプルファイルをダウンロードしよう

今回は、一緒に操作しながら理解できるよう、
記事で使用しているサンプルファイルをご用意しました。
下の「ダウンロード」ボタンをクリックすると、ファイルが自動的にダウンロードされます。
※サンプルはExcel形式(.xlsx)です。
VLOOKUPを横コピーするとどうなる?
VLOOKUPの中身を確認する
まずは、VLOOKUPについて見てみましょう。
たとえば【VLOOKUP練習】の「C2」セルに以下のような数式が入力されている場合、
その数式の中身はこうなっています。
【VLOOKUP練習】は、もともとB列(商品コード)のみが入力されていました。
C列のデータは、数式を使って自動反映させています。
「C2」セルに入力した数式は、具体的に次のような動きをします。
②【元データ】「P001」と同じ行にある、「指定範囲の左から2列目のデータ」を取得します。
③【VLOOKUP練習】C2セルに「ノートPC」と表示されます。
VLOOKUPを横コピーしてみよう
※サンプルファイルの「VLOOKUP練習」シートを使用します。
ではC列の数式(=VLOOKUP($B2,Sheet1!$A:$J,2,0))を、D列にコピーしてみましょう。
すると、次のようにまったく同じ内容が反映されます。これは、VLOOKUPの列番号が「2」のままだからです。
VLOOKUPは、列番号を「2」と決めたら、横にコピーしても「3」「4」「5」…と増えていくことはありません。
では、自動で列番号を増やすにはどうすればいいのでしょうか?
ここで、COLUMN関数の出番です。
COLUMNは横コピーした時に、列番号「2」を、自動で「3」「4」「5」…と変化させてくれる関数なのです。

次のパートで、COLUMN関数について
詳しく見てみよう!
COLUMN関数でVLOOKUPを横コピーしよう
COLUMN関数は、VLOOKUPと組み合わせることで、列番号を自動で切り替えられる便利な関数です。
でも少しややこしいため、まずはCOLUMN関数を一緒に試してみましょう。
COLUMN関数を使ってみよう
まずエクセルを開いて、「A1」セルに以下の数式を入力してください。
Enterキーを押すと、A1セルに「1」と表示されます。
これは「A列=1列目」という意味です。
このようにCOLUMNは、列番号を教えてくれる関数です。
では、A1を右にコピーしてみましょう。
すると数字が増えましたね。
これは、A列と同じように「B列=2列目」「C列=3列目」……というように、それぞれの列番号を表しています。
COLUMN関数の基礎はこれでOK。
次に、実際にVLOOKUPと組み合わせてみましょう。
VLOOKUPと組み合わせてみよう
まず単純に、列番号「2」を「COLUMN()」に置き換えてみましょう。
そうすると、【元データ】3列目の「ABC電機」が表示されました。
なぜ、3列目が選択されるのでしょうか?
それはCOLUMN()が、数式を入力したセルの列番号を返す関数だからです。
今回はC列に数式を入力しているため、「3」が返されます。
分かりやすく画像で見てみましょう。
まず、数式が入力されているセルはC列(左から3列目)ですので、
COLUMN()の結果は「3」になります。
VLOOKUPは、この「3」を列番号として使用します。
その結果、指定範囲()の3列目が表示されます。
ではどうすれば、本来表示させたい「2列目」が表示されるのか?
実は、2つの解決方法があります。
方法① COLUMN(B1)で列番号を指定する
※サンプルファイル「横コピー練習」シートを使います。
初めての場合は、こちらがおすすめ。
「COLUMN()」の「()」の中に、列番号を指定する方法です。
今回表示させたいのは、指定範囲の左から2列目(B列)のデータですので、
数式を「COLUMN(B1)」に変更します。
これで、正しく表示されます。
修正したC2セルを、縦と横にコピーしてみましょう。
商品名・メーカー…と正しく取得できるようになりました。
応用してみよう
※サンプルファイル「横コピー練習」シートを使います。
指定範囲がA列から始まっていない場合(例:I:R)は、
COLUMN関数で指定する列にも注意が必要です。
指定範囲の左から2列目を選びたいとき、一見下記の数式で合っているように見えますが
=VLOOKUP($B2,Sheet1!$I:$R,COLUMN(J1),0)
じつはVLOOKUPは、指定した範囲の左はしを「A列」と考えます。
つまり今回の例で言うと、I列はA列、J列はB列という考え方になります。
そのため、J列(左から2列目)を取得したい場合は、次のように「B1」を指定します。
=VLOOKUP($B2,Sheet1!$I:$R,COLUMN(B1),0)

シートはJ列でも、
数式では「B列」になるんだね!
方法② +と-で列番号を調整する
慣れてきたら、こちらも使ってみて下さい。
「COLUMN()」の後ろに「+1」「-1」を付けて、位置を調整する方法です。
前述のとおり、今回は数式がC列(3列目)に入力されているため、「3」が返ります。
3列目ではなく2列目にしたいので、「COLUMN()-1」とします。
すると返る数値が「3」から「2」へ変更されるため、正しく表示されます。
修正したC2セルを、縦と横にコピーしてみましょう。
商品名・メーカー…と正しく取得できるようになりました。
おまけ:方法③ 2つの方法を組み合わせる
実は、方法①と方法②は、組み合わせて使うことができます。
たとえば次のような数式ですね。
一見、難しそうに見えるのですが、
「COLUMN(C1)-1」
「COLUMN(A1)+1」
「COLUMN(B1)」
どれも最終的に「2」を返すため、同じ結果になります。
最初から難しい式を使う必要はありませんので、
自分にとって分かりやすい方法を選んでみてくださいね!
数式を入力する位置や、取得したい列によって変更してみて下さい。
思った結果にならないときは、まず =COLUMN() を入力して、現在何列目になっているのか確認すると分かりやすくなります。
★VLOOKUPの応用編で、データを横に抽出する方法(クロス抽出)を知りたい方は、
こちらの記事も参考にしてください。

まとめ
今回は、VLOOKUPを横にコピーする方法をご紹介しました。
通常のVLOOKUPでは、横へコピーしても列番号は変わらないため、同じ項目が表示されてしまいます。
そこでCOLUMN関数を組み合わせることで、列番号を自動で切り替えられるようになり、縦も横もコピーだけで対応できるようになります。
最初は少し難しく感じるかもしれませんが、実際にCOLUMN関数を入力して試してみると、「列番号を返しているだけ」という仕組みが分かりやすくなります。
まずは今回紹介した「COLUMN(B1)」のような分かりやすい書き方から試してみてください。
一度使い方を覚えてしまえば、VLOOKUPを使った表作成がぐっと楽になりますよ!






















コメント