【Excel】VLOOKUPを横にコピーする方法|COLUMN関数で列番号を自動で切り替える

Word・Excel

エクセルでVLOOKUPを使う際、

「列ごとに数式を入れるのは面倒」

「横にコピーしたとき、自動的に反映されれば楽なのにな」

と思った事はありませんか?

 

VLOOKUP関数は、通常どおりに使用すると

縦コピーはできても、横コピーでは同じ項目が表示されてしまいますよね。

 

しかし、今回ご紹介する「COLUMNカラム関数」をVLOOKUPに組み合わせて使用すれば、

縦も横もコピーするだけで自動反映されるようになります。

 

COLUMN関数は列の考え方が少しややこしいですが、

初めて使う方でも分かりやすいように体験型で説明します。

 

ぴくねこ
ぴくねこ

ぜひ一緒にやってみて、

VLOOKUP×COLUMNを使いこなしましょう!

 

※画像は拡大できます。

 

スポンサーリンク
スポンサーリンク

VLOOKUPは横コピーできる?[4コマ]

「VLOOKUPは、横にコピーできる」

その方法があるなら、もちろん上司ねこだって知りたい!

 

今回は体験型の記事です。

皆さんも、ぜひ一緒にチャレンジしてみてください。

 

※登場キャラクターについてはこちら
→ キャラ紹介ページ

 

サンプルファイルをダウンロードしよう

 

ぴくねこ
ぴくねこ

今回は、一緒に操作しながら理解できるよう、

記事で使用しているサンプルファイルをご用意しました。

 

下の「ダウンロード」ボタンをクリックすると、ファイルが自動的にダウンロードされます

 

ダウンロードしたファイルを開くと、「保護ビュー」が表示される場合があります。
解除しても大丈夫か不安な方は、こちらの記事も参考にしてください。

 保護ビューは解除して大丈夫?安全かどうかの見分け方
 
数式をコピーした際に「アクティブなコンテンツを貼り付けています」と警告が表示された場合は、こちらの記事をご覧ください。
「セキュリティに影響を及ぼす可能性のある問題点が検知されました」の原因と対処法

 

※サンプルはExcel形式(.xlsx)です。

 

VLOOKUPを横コピーするとどうなる?

※サンプルファイルの「VLOOKUP練習」シートと、「元データ」シートを使用します。

 

VLOOKUPの中身を確認する

まずは、VLOOKUPについて見てみましょう。

 

たとえば【VLOOKUP練習】の「C2」セルに以下のような数式が入力されている場合、

=VLOOKUP($B2,Sheet1!$A:$J,2,0)

 

その数式の中身はこうなっています。

 

【VLOOKUP練習】は、もともとB列(商品コード)のみが入力されていました。

C列のデータは、数式を使って自動反映させています。

 

「C2」セルに入力した数式は、具体的に次のような動きをします。

①【VLOOKUP練習】B2セルに入力されている商品コード「P001」を確認。これと一致するものを、指定範囲の一番左側(今回は【表B】のA列)から探します。
②【元データ】「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関数を使ってみよう

※サンプルファイル「COLUMN練習」シートを使います。

 

まずエクセルを開いて、「A1」セルに以下の数式を入力してください。

=COLUMN()

 

Enterキーを押すと、A1セルに「1」と表示されます。

これは「A列=1列目」という意味です。

このようにCOLUMNは、列番号を教えてくれる関数です。

 

では、A1を右にコピーしてみましょう。

すると数字が増えましたね。

これは、A列と同じように「B列=2列目」「C列=3列目」……というように、それぞれの列番号を表しています。

 

COLUMN関数の基礎はこれでOK。

次に、実際にVLOOKUPと組み合わせてみましょう。

 

VLOOKUPと組み合わせてみよう

※サンプルファイル「横コピー練習」シートを使います。

 

まず単純に、列番号「2」を「COLUMN()」に置き換えてみましょう。

 

そうすると、【元データ】3列目の「ABC電機」が表示されました。

※この画面は、数式バーの「Fx」をクリックすると表示されます。

 

なぜ、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つの方法を組み合わせる

実は、方法①と方法②は、組み合わせて使うことができます。

 

たとえば次のような数式ですね。

=VLOOKUP($B2,Sheet1!$A:$J,COLUMN(C1)-1,0)

 

一見、難しそうに見えるのですが、

COLUMN(C1)-1

COLUMN(A1)+1

COLUMN(B1)

どれも最終的に「2」を返すため、同じ結果になります。

 

最初から難しい式を使う必要はありませんので、

自分にとって分かりやすい方法を選んでみてくださいね!

 

COLUMN関数の「+1」「-1」は固定ではありませんので、「+2」「-3」等も使用できます。
数式を入力する位置や、取得したい列によって変更してみて下さい。
思った結果にならないときは、まず =COLUMN() を入力して、現在何列目になっているのか確認すると分かりやすくなります。

 

 

VLOOKUPの応用編で、データを横に抽出する方法(クロス抽出)を知りたい方は、

こちらの記事も参考にしてください。

【Excel】VLOOKUPでデータを横に抽出する方法
データを横に向かって抽出するHLOOKUP。でも同じことがVLOOKUPで出来るんです!分かりやすく画像で解説。旧バージョンのエクセルでも使える便利なデータ抽出法です!

 

まとめ

今回は、VLOOKUPを横にコピーする方法をご紹介しました。

通常のVLOOKUPでは、横へコピーしても列番号は変わらないため、同じ項目が表示されてしまいます。

そこでCOLUMN関数を組み合わせることで、列番号を自動で切り替えられるようになり、縦も横もコピーだけで対応できるようになります。

 

最初は少し難しく感じるかもしれませんが、実際にCOLUMN関数を入力して試してみると、「列番号を返しているだけ」という仕組みが分かりやすくなります。

 

まずは今回紹介した「COLUMN(B1)」のような分かりやすい書き方から試してみてください。

一度使い方を覚えてしまえば、VLOOKUPを使った表作成がぐっと楽になりますよ!

 



コメント

タイトルとURLをコピーしました