Excel関数 逆引き集 | 列番号を取得 → COLUMN

Excel
スポンサーリンク

概要

COLUMNは「セルや範囲の“列番号”」を返す関数です。A列は1、B列は2…Z列は26のように、シート上の列番号で返します。範囲を渡すと、範囲内の各列番号(横方向の配列)を返します。式の横展開、汎用テンプレート、動的列参照の作成などで役立ちます。


基本の使い方

書式

=COLUMN([参照])
  • 参照を省略すると「この式があるセルの列番号」を返します。
  • セルや範囲を渡すと、その“左端の列番号”か、動的配列(Microsoft 365)では範囲内の列番号が並びます。

=COLUMN()        // そのセルの列番号
=COLUMN(A1)      // 1(A列)
=COLUMN(Z10)     // 26(Z列)
=COLUMN(B2:D2)   // {2,3,4}(Microsoft 365で横方向に返る)

具体例

横方向に1,2,3…と連番を作る(動的配列)

=COLUMN(B1:D1)

B〜D列の位置に合わせて {2,3,4} を返します。列ベースの連番やオフセット計算に使えます。

指定開始列からの“相対列インデックス”を作る

開始列をB(列2)として、C列なら1、D列なら2…と相対化します。

=COLUMN()-COLUMN($B$1)+1

横にコピーしても“開始列からの位置”で動きます。

INDEXと組み合わせて“n列目”を可変取得

範囲のn列目を取得(nは列インデックス)

=INDEX($B$2:$F$20, 1, COLUMN($B:$F)-COLUMN($B:$B)+1)

またはシンプルに

=INDEX($B$2:$F$20, 行番号, 列番号)

列番号部分をCOLUMNで生成すると、横コピーで自動的に列がずれます。


応用テンプレート

見出し位置に合わせた自動番号付け

見出しがB1:D1にあるとき、その真下で列番号を表示

=COLUMN(B1:D1)

レポートの列管理に使えます。

列シフトでデータを参照(横コピーに強い)

基準列Bを0として、右に1列進むごとに列をずらす

=INDEX($B$2:$Z$2, COLUMN()-COLUMN($B$1)+1)

関数だけで“横方向のオフセット”が実現できます。

列番号から列記号への変換(ADDRESS+SUBSTITUTE)

列番号nを列記号に変換したいとき

=SUBSTITUTE(ADDRESS(1, n, 4), "1", "")

例:n=27 → AA

範囲の“列数”を知りたいとき(COLUMNSとの違い)

列数が欲しいならCOLUMNSを使います(COLUMNは“番号”、COLUMNSは“個数”)。

=COLUMNS(B2:F20)   // 5

よくあるつまずきと対策

範囲を渡したのに1つしか返らない

古いExcelでは範囲にCOLUMNをかけても“左端の列番号”だけになります。Microsoft 365の動的配列なら配列で返る点に注意してください。

絶対参照を忘れて相対化がズレる

開始列の基準セルに絶対参照($)を付けるのを忘れると、コピー時に基準が動きます。

=COLUMN()-COLUMN($B$1)+1   // $ を必ず付ける

列数と列番号の取り違え

“列数”はCOLUMNS、“列番号”はCOLUMN。用途に応じて正しく使い分けます。

テーブル(構造化参照)との併用

テーブル見出しの列番号は分かりづらいことがあります。構造化参照では“列名”を直接使えるため、COLUMNに頼らず可読性を優先するのも実務的です。

=INDEX(売上[金額], 行番号)

例題

問題1: この式のあるセルの列番号をB2に表示してください。

解答例:

=COLUMN()

問題2: セルA2の列番号をC2に表示してください。

解答例:

=COLUMN(A2)

問題3: 範囲B2:D2の各列番号をE2から横に表示してください(Microsoft 365)。

解答例:

=COLUMN(B2:D2)

問題4: 開始列Bを基準として“相対列インデックス”をF2に表示(C列なら1、D列なら2)。

解答例:

=COLUMN()-COLUMN($B$1)+1

問題5: 列番号27の列記号(AA)をG2に表示してください。

解答例:

=SUBSTITUTE(ADDRESS(1, 27, 4), "1", "")

まとめ

COLUMNは「列番号」を取得する基本関数で、横コピーに強い式設計、相対インデックス、動的配列の横連番などに向いています。列“個数”はCOLUMNS、列“記号”はADDRESS+SUBSTITUTEが便利。絶対参照で基準を固定し、範囲に対しては動的配列の挙動を理解すると、テンプレートが安定します。

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