スプレッドシートで商品IDを入力するだけで商品名、価格、在庫数を自動表示したい。そんな場面は日常的にあります。しかし、VLOOKUP関数を使うと列番号を「2」「3」「4」と手で修正しなければならず、地味に面倒な作業が発生します。この記事では、この作業を不要にするCOLUMN関数を活用した時短術をご紹介します。
VLOOKUPのオートフィルが抱える落とし穴
VLOOKUPは便利ですが、オートフィルで右にコピーしても列番号は自動で変わりません。
=VLOOKUP(G2, $A$1:$D$50, 2, FALSE)
例えば、こちらをコピーすると、どのセルでも「2列目」のデータ(商品名)が表示されてしまいます。これが、毎回手入力で列番号を直さなければならない原因です。
COLUMN関数とは?
COLUMN関数は「そのセルが属する列番号」を返すシンプルな関数です。
- B列なら「2」
- C列なら「3」
この特徴を利用すると、VLOOKUPの列番号を動的に変化させることが可能になります。
VLOOKUP × COLUMN関数の組み合わせ
次の数式が完成形です。
=VLOOKUP($G2, $A$1:$D$50, COLUMN(B1), FALSE)
ポイント解説
- 検索値:
$G2 - データ範囲:
$A$1:$D$50 - 列番号:
COLUMN(B1)
H2セルに入力して右にコピーすると、
- I2セルでは
COLUMN(C1)→ 3(価格) - J2セルでは
COLUMN(D1)→ 4(在庫数)
と自動で列番号が切り替わります。
絶対参照の設定
この方法を安定稼働させるには参照の固定が重要です。
- データ範囲:
$A$1:$D$50(列も行も固定) - 検索値:
$G2(列は固定、行は可変)
これにより、数式を縦横どちらにコピーしても壊れない、堅牢な仕組みが完成します。
まとめ:作業効率を変える小さな工夫
- 列番号を固定数字ではなく
COLUMN()に置き換える - 範囲や検索値を正しく絶対参照する
これだけで、VLOOKUPの列番号を手で直す必要がなくなり、入力ミス防止と時間短縮が可能です。商品IDを変えるだけで関連データが瞬時に更新されるスプレッドシートが完成します。小さな工夫で日常の作業効率が劇的に変わる時短術です。



