本記事では、エクセルの「COLUMN関数の基本~応用的な使い方」を解説します。
- COLUMN関数の基本的な使い方:
引数を指定する場合と、しない場合のそれぞれの使い方を理解できます。 - ROW関数との違い:
ROW関数とCOLUMN関数の役割の違いを明確に把握できます。 - VLOOKUP関数との組み合わせ:
手入力の手間を省き、オートフィルで自動的に列番号を変更する方法を習得できます。 - INDEX関数やINDIRECT関数との応用例:
VLOOKUP関数以外の応用例も学び、より柔軟なデータ操作の幅を広げられます。 - エクセル作業の効率化:
COLUMN関数を使いこなすことで、日々の作業をより効率的に進めるヒントを得られます。
COLUMN関数とROW関数の違いって?
COLUMN関数とROW関数はちょうど鏡合わせのような関係にあります。
簡単に言うと、ROW関数は「行番号」を、COLUMN関数は「列番号」を返してくれる関数です。
関数名 | 読み方 | 役割 | 使い方 |
---|---|---|---|
ROW関数 | ロー | 行番号を返す | =ROW() =ROW(A1) |
COLUMN関数 | コラム | 列番号を返す | =COLUMN() =COLUMN(A1) |
このように、役割は違いますが、どちらも使い方や引数の考え方はとても似ています。
ROW関数についてもっと詳しく知りたい方は、こちらの記事もぜひ参考にしてみてくださいね!
COLUMN関数の基本!まずはここからマスターしよう

まずは、COLUMN関数の基本的な使い方から見ていきましょう。
【書式】
=COLUMN([参照])
[参照]:列番号を調べたいセルを指定します。この部分は省略することもできます。
【基本例1:引数を指定しない場合】
C3セルに=COLUMN()と入力してみましょう。
すると、「3」という数字が返ってきます。

なぜ「3」なのかというと、C列が左から数えて3番目の列だからです。
=COLUMN()のように引数を省略すると、関数が入力されている自身のセルの列番号を返してくれるんですね。
【基本例2:引数を指定する場合】
では、次に、A1セルに=COLUMN(E5)と入力してみましょう。
すると、「5」という数字が返ってきます。

これは、E列が左から数えて5番目の列だからです。
このように、引数として指定したセルの列番号が返ってきます。
知っておくと便利!COLUMN関数の応用テクニック

COLUMN関数は、単独で使うよりも、他の関数と組み合わせることで真価を発揮します。 ここでは、エクセル作業でよく使うVLOOKUP関数、そしてINDEX関数やINDIRECT関数と組み合わせる方法をご紹介します。
VLOOKUP関数は、指定した範囲から特定の情報を探してきてくれる、とても便利な関数です。
ただ、VLOOKUP関数には一つだけ注意点があります。
それは、探したい情報が「何列目」にあるかを数字で指定してあげる必要があることです。
例えば、下のような表から「商品名」を検索したい場合、VLOOKUP関数の引数に「2」と手入力する必要があります。

=VLOOKUP(A2, A2:B4, 2, FALSE)


商品名を探すには「2」、価格を探すには「3」…と、いちいち手動で変えるのは面倒ですよね。 そんな時に、COLUMN関数が活躍します!
VLOOKUP関数とCOLUMN関数を組み合わせる最強テクニック
VLOOKUP関数の「何列目」という部分に、COLUMN関数を入れてみましょう。
【組み合わせの例】
=VLOOKUP(A2, A2:B4, COLUMN(B1), FALSE)
この式を分解して見ていきましょう。
- VLOOKUP(A2, A2:C4, …):
A2セルに入力された「商品ID」を、A2:C4の範囲から探します。 - COLUMN(B1):
ここでCOLUMN関数が登場します。B1セル(B列)の列番号を求めます。B列は左から2番目なので、結果は「2」になります。

つまり、=VLOOKUP(A2, A2:C4, COLUMN(B1), FALSE)は、=VLOOKUP(A2, A2:C4, 2, FALSE)と全く同じ意味になるんです!

「手入力で「2」と入力すればいいのでは?」と思った方もいるのではないでしょうか?
このテクニックは、式を右にオートフィルでコピーした時にとても便利な機能です。
例えば、VLOOKUP関数をB列の商品名だけでなく、C列の価格にも使いたい場合。 手動でやる場合は、価格を検索するために式の中の「2」を「3」に書き換える必要がありますよね。
でも、COLUMN(B1)と書いておけば、右にオートフィルコピーするだけで、自動的にCOLUMN(C1)に変わってくれます!
COLUMN(C1)の返す値は「3」なので、自動的に次の列の情報を検索してくれるようになるんです。
これは、行番号を自動で変えたいときにROW関数を使うのと同じ感覚ですね!
他の関数と組み合わせる応用例
COLUMN関数は、VLOOKUP関数以外にも様々な関数と組み合わせることで、さらに柔軟なデータ操作が可能になります。
【応用例1:INDEX関数とCOLUMN関数の組み合わせ】
INDEX関数は、指定した範囲の中から、行番号と列番号を指定してセルの値を返す関数です。
=INDEX(範囲, 行番号, 列番号)
この「列番号」にCOLUMN関数を組み込むことで、右にオートフィルするだけで自動的に参照する列を変えることができます。
下図のような表で、INDEX関数とCOLUMN関数を組み合わせて、商品IDから商品名を引っ張ってきましょう。

=INDEX($A$2:$B$4, MATCH(A2,$A$2:$A$4,0), COLUMN(B1))
- MATCH(A2,$A$2:$A$4,0):
A2セルの値が、A2:A4の範囲の何番目にあるかを求めます。 - COLUMN(B1):
B1セルの列番号「2」を返します。 - INDEX($A$2:$B$4, …, …):
A2:B4の範囲内で、MATCH関数が返した行と、COLUMN関数が返した列の値を返します。

この式を右にコピーすると、COLUMN(B1)がCOLUMN(C1)に変わり、自動的に価格を検索してくれます。VLOOKUP関数と似ていますが、INDEX関数は検索範囲の左端に検索値がなくても使えるので、より柔軟な使い方ができますよ。
【応用例2:INDIRECT関数とCOLUMN関数の組み合わせ】
INDIRECT関数は、文字列で指定したセルを参照する関数です。
=INDIRECT(“A” & ROW()) のように、ROW関数と組み合わせることも多いですが、COLUMN関数と組み合わせることで、列を動的に参照することもできます。
例: COLUMN関数を使って、列をずらしながらデータを参照したい場合。
=INDIRECT(ADDRESS(1, COLUMN(B1)))
- COLUMN(B1):
B1セルの列番号「2」を返します。 - ADDRESS(1, 2):
行番号1、列番号2(B列)のセルの番地「B1」を返します。 - INDIRECT(“$B$1”):
文字列「B1」が指すセル、つまりB1セルの値を参照します。
この式を右にオートフィルすれば、COLUMN(B1)がCOLUMN(C1)に変わり、自動的にC1セルの値を参照するようになります。データのまとめや集計など、動的な参照が必要な場合に便利です。
まとめ:COLUMN関数をマスターしてエクセル作業を効率化しよう!
今回は、エクセルで列番号を求めるCOLUMN関数について解説しました。
ROW関数と合わせて覚えておけば、連番を振るだけでなく、VLOOKUP関数やINDEX関数、INDIRECT関数のような他の関数と組み合わせることで、より効率的なシート作成が可能になります。

コメント