
エクセルで列の位置を取得できる「COLUMN関数」の基本を分かりやすく解説します。「VLOOKUP関数と組み合わせて複数データを取得する方法」から、列番号をアルファベットに変換する方法まで解説しているので、ぜひ参考にしてみてください。
COLUMN関数の基本

指定したセルの列の位置を、数字(A=1、B=2…)で返します。
例:=COLUMN(A2)
💡ポイント:参照を省略すると、数式を入力したセル(C2)の列番号(3)を返します。
COLUMN関数の引数:([参照])
列番号をアルファベットで取得する
Excel 2021以前の場合

ADDRESS関数で「A2」形式のセル番地を取得し、SUBSTITUTE関数で行番号「2」を削除します。
例:=SUBSTITUTE(ADDRESS(ROW(A2),COLUMN(A2),4),ROW(A2),"")
ADDRESS関数の引数:(行番号, 列番号, [参照の種類], [参照形式], [シート名])
【数式の解説】
- ROW関数:指定したセルの行番号「2」を取得します。
- COLUMN関数:指定したセルの列番号「1」を取得します。
- ADDRESS関数:行番号「2」、列番号「1」を受け取り、第3引数に「4(相対参照)」を指定することで、「A2」という文字列を生成します。
- SUBSTITUTE 関数:「A2」の文字から、セルの行番号「2」を空白(
"")に置換します。
Excel 2024以降の場合

ADDRESS関数の行番号に「1」を指定して「A1」という文字列を生成し、TEXTBEFORE関数で「1」よりも前にある文字を抽出します。
例:=TEXTBEFORE(ADDRESS(1,COLUMN(A2),4),"1")
TEXTBEFORE関数の引数:(テキスト, 区切り文字, [区切り位置], [一致モード], [末尾一致], [見つからない場合])
📖 TEXTBEFORE関数の詳しい使い方は「特定の文字より前/後ろを抽出する!TEXTBEFORE/AFTER関数」の記事をご覧ください。
VLOOKUP関数と組み合わせる

VLOOKUP関数の「列番号」にCOLUMN関数を組み合わせることで、1つの数式を右にコピーするだけで、複数列のデータを抽出できるようになります。
例:=VLOOKUP("みかん", $A$2:$C$5, COLUMN(B:B), FALSE)
VLOOKUP関数の引数:(検索値, 範囲, 列番号, [検索方法])
【数式の解説】
COLUMN(B:B)を右のセルにコピーすると、自動的にCOLUMN(C:C)➔COLUMN(D:D)とスライドしていくため、列番号が「2」「3」「4」と自動的に切り替わります。