Excelで作業をしていると「このセルは何列目にあるのか」を数式で確認したい場面があります。
そのような場面で役立つのが「COLUMN関数」です。
COLUMN関数はセルの列番号を返す関数であり、複雑な数式や配列関数と組み合わせることで非常に強力なツールになります。
本記事では、COLUMN関数の基本的な使い方・引数の指定方法・ROW関数との使い分け・実用的な活用例まで、わかりやすく解説していきます。
COLUMN関数とは何か?基本的な意味と役割
それではまず、COLUMN関数の基本的な意味と役割について解説していきます。
COLUMN関数とは、指定したセルまたはセル範囲の列番号を返すExcel関数のことです。
Excelでは列はA・B・C……のアルファベットで表示されていますが、COLUMN関数を使うと「A列=1・B列=2・C列=3……」という数値で列の位置を取得できます。
動的に列番号を参照する数式を作りたい場合や、配列数式と組み合わせる場合に非常に有用な関数です。
COLUMN関数の基本構文
=COLUMN([参照])
参照:列番号を調べたいセルまたはセル範囲(省略可能)
省略した場合:COLUMN関数が入力されているセルの列番号を返す
戻り値:列番号を表す整数(A列=1、B列=2、Z列=26、AA列=27…)
引数を省略して「=COLUMN()」と入力すると、その数式が入力されているセルの列番号が返されます。
これを活用することで、数式をコピーするたびに自動的に列番号が変化する動的な数式を作成できるでしょう。
COLUMN関数の基本的な使い方
具体的な使用例で COLUMN関数の動作を確認します。
COLUMN関数の使用例
=COLUMN(A1) → 1(A列は1番目)
=COLUMN(C5) → 3(C列は3番目)
=COLUMN(Z1) → 26(Z列は26番目)
=COLUMN() → 数式が入力されているセルの列番号を返す
=COLUMN(B:B) → 2(B列全体を参照)
セル参照は行番号の部分は関係なく、列の部分だけが結果に影響します。
「=COLUMN(C5)」も「=COLUMN(C100)」も同じく「3」を返すため、行番号は何でも構わないでしょう。
COLUMNS関数との違い
COLUMN関数と混同しやすい関数として「COLUMNS関数」があります。
COLUMNS関数とは、指定したセル範囲に含まれる列の数を返す関数のことで、COLUMN関数(列番号を返す)とは動作が異なります。
COLUMN関数とCOLUMNS関数の違い
=COLUMN(C5) → 3(C列の列番号)
=COLUMNS(A1:E1) → 5(A〜Eの5列分の列数)
=COLUMNS(B2:D10) → 3(B〜Dの3列)
範囲内の列数を数えたい場合はCOLUMNS関数、特定のセルが何列目にあるかを調べたい場合はCOLUMN関数を使うという使い分けが基本です。
COLUMN関数の実用的な活用例
続いては、COLUMN関数の実用的な活用例を確認していきます。
COLUMN関数は単体で使うよりも、他の関数と組み合わせることで真価を発揮します。
INDEX関数との組み合わせ
COLUMN関数をINDEX関数と組み合わせると、右方向に数式をコピーするたびに参照列が自動的にずれる動的な参照が作れます。
INDEX+COLUMN関数の組み合わせ例
データがA1:E10の範囲にある場合:
=INDEX($A$1:$E$10, 2, COLUMN(A1))
この数式をB列・C列・D列へコピーすると、COLUMN(A1)が自動的にCOLUMN(B1)→2、COLUMN(C1)→3と変化し、
2行目の1列目・2列目・3列目のデータを順番に参照できる。
この組み合わせは、横方向に展開するデータ参照を作る際に非常に便利なテクニックです。
VLOOKUP関数では列番号を手動で指定する必要がありますが、COLUMN関数と組み合わせることで自動化できるでしょう。
MOD関数との組み合わせによる縞模様の自動設定
COLUMN関数をMOD関数(余りを求める関数)と組み合わせると、条件付き書式で列ごとに背景色を変える縞模様のスタイルを自動設定できます。
MOD+COLUMN関数で列の縞模様を作る
条件付き書式の数式欄に:
=MOD(COLUMN(), 2)=0
これで偶数列(B・D・F…)に書式が適用される縞模様が完成する。
奇数列に適用したい場合は「=MOD(COLUMN(), 2)=1」にする。
大量のデータを見やすくするための縞模様表示は手動でも設定できますが、COLUMN関数を使った条件付き書式なら列を追加・削除しても自動的に適用されるため管理が楽になるでしょう。
配列数式でのCOLUMN関数活用
Excel 365やExcel 2019以降で使えるSPILL(スピル)機能と組み合わせると、COLUMN関数を使った配列数式がさらに便利になります。
SEQUENCE関数とCOLUMN関数の組み合わせ
=SEQUENCE(1, 5) → 1, 2, 3, 4, 5 を横方向に展開
COLUMN関数と組み合わせた動的参照:
=INDEX(A:A, COLUMN(A1)*2)
→ A2, A4, A6…と1行おきのデータを参照(右にコピーで自動展開)
モダンなExcel(365版)ではLAMBDA関数やMAP関数との組み合わせでさらに高度な配列処理が可能となっており、COLUMN関数はその中でも基礎的な役割を担っています。
ROW関数との比較と使い分け
続いては、COLUMN関数と対になるROW関数との比較と使い分けを確認していきます。
| 関数 | 取得する値 | 主な用途 |
|---|---|---|
| COLUMN() | 列番号(横方向) | 横方向の動的参照・列番号を使った計算 |
| ROW() | 行番号(縦方向) | 縦方向の動的参照・連番生成・1行おきの参照 |
| COLUMNS() | 範囲の列数 | 範囲の列数を数える |
| ROWS() | 範囲の行数 | 範囲の行数を数える |
ROW関数は縦方向に数式をコピーするとき、COLUMN関数は横方向に数式をコピーするときに活躍します。
両者を組み合わせることで、縦横両方向に動的に変化する二次元の参照を作成することも可能でしょう。
ROW関数を使った連番生成
ROW関数の代表的な活用例として、連番の自動生成があります。
ROW関数を使った連番生成
A2セルから連番を始める場合:
=ROW()-1 (A2に入力→1、A3→2、A4→3…と自動連番)
1から始める任意の連番:
=ROW(A1) (どこにコピーしても1・2・3と続く)
行の挿入・削除があっても自動的に連番が更新されるため、手動で番号を振り直す手間が省けるでしょう。
まとめ
本記事では、COLUMN関数の基本的な使い方・COLUMNS関数との違い・INDEX関数やMOD関数との組み合わせ・ROW関数との使い分けまで幅広く解説してきました。
COLUMN関数は単体では列番号を返すシンプルな関数ですが、他の関数と組み合わせることで動的な参照・縞模様の自動設定・配列処理などの高度な活用が可能になります。
ROW関数と合わせて理解することで、縦横両方向に柔軟な数式設計ができるようになるでしょう。
ぜひ本記事を参考にして、COLUMN関数を業務効率化に役立ててください。