EXCEL

VLOOKUP 関数 を 横方向に 修正なしで コピー 列番号の指定 に COLUMN 関数 を使う

VLOOKUP 関数の列番号は数値で入力します。選んだ範囲の何列目かを指定する必要があり、間違いを無くすためには何回かカウントして確認する作業が必要です。そして、VLOOKUP関数を縦方向にコピーすれば簡単に一列が完成します。しかし、VLOOKUP 関数を横方向にコピーした時、列番号の指定は数値で指定しているため、列の移動に追随せず同じものがコピーされて、コピー後に列指定を訂正するという手順になります。これって、結構面倒くさくて嫌です。なんとかしたいですね。 COLUMN 関数を使う方法を含めて方法を解説します。

考えられる方法は、3つあります。

  1. 列を指定する数字を入れておく行を作成して VLOOKUP 関数から参照する
  2. 列を指定する時に、COLUMN 関数で列番号を取得して列番号との相対数値で指定する
  3. VLOOKUP 関数をやめて XLOOKUP 関数を使う

列を指定する数字を入れておく行を作成して VLOOKUP 関数から参照する

要するに、その列で使う列指定の数字をどこか表に関係ない場所に一行にまとめて入力しておく方法です。

参照は、横へのコピーと同時にずれてくれるため、参照したい列指定の数値を横に並べておきます。場所はどこでも良いのです。列ラベルの上でも、別シートでも。うまくすればラベルに含めてもできます。この場合は、さらに関数を使うことになりますが。。。

列番号との相対数値で指定する( COLUMN 関数を使って 列を指定する)

COLUMN 関数は、一番左のA列を1として、右に進む毎にB列が2、C列が3とした列の番号を返す関数です。

vlookup column copy

VLOOKUP の選択範囲がB列から始まっているならば、Bの列を指定する時に1としたいので、COLUMN ()-1と指定することで 2-1=1 と欲しい値が取得できます。そして、VLOOKUP 関数を列方向にコピーすると、その列に応じた列指定の数が得られるため、列の並び順はそのままで抜き出したい時に便利です。そしてコピー後の訂正が必要ありません。

VLOOKUP 関数をやめて XLOOKUP 関数を使う

もちろんoffice365を使っていることが前提ですが、XLOOKUP 関数では、配列のスピルを返してくれますので、コピーの必要すらありません。

めちゃくちゃ便利なので、office365を使っていて未だXLOOKUP 関数使ってないよという方は、XLOOKUP 関数を是非一度試してみていただきたいです。

まとめ

どの方法も、ひと工夫が加わって、単純に数値を指定して使っているよりは効率がよくなると思います。

ただ、この方法が一番良い、というものではなく、使っておられる環境と、実現したいことにあった方法を選択して、使ってみてください。

特定の列を抜き出したい時には、2番の方法や3番の方法ではやはり手間になってしまいますので、最初に説明したやり方 『列を指定のする数値の行を作る』 を使う必要がありますし、表の塊を条件で抜き出す時は、2番や3番の方法で、ということになりそうです。

今回は VLOOKUP 関数や XLOOKUP 関数の使い方については解説していませんが、別の記事で解説していますので、そちらを参照いただければ幸いです。

コメント

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