Excelで表を扱っていると、現在選択している列が何列目なのか、シート内で実際にどこまで列を使っているのかを確認したい場面があります。
列番号は関数やVBAの設定、データの照合で役立ち、使用中の列数は帳票の整形や印刷範囲の見直しにも欠かせません。
列番号の確認はCOLUMN関数、使用中の列数の確認はCOUNTA関数や最終列への移動を組み合わせると効率的です。
この記事では、見出し行が1行目にあるサンプルデータを使い、列番号と使用中の列数を確認する実践的な方法を解説します。
エクセルで列番号を確認する方法
| A列 | B列 | C列 | D列 |
|---|---|---|---|
| 商品名 | 数量 | 単価 | 売上金額 |
| りんご | 12 | 150 | 1800 |
それではまず、列記号ではなく数値として列番号を確認する方法について解説していきます。
【操作のポイント】列番号を数値で扱うと、数式の列指定やVBAの処理条件を考えやすくなります。
COLUMN関数による列番号の取得
COLUMN関数は、指定したセルが何列目にあるかを数値で返す関数です。
たとえばD2セルの列番号を確認したい場合は、空いているセルに次の数式を入力します。
=COLUMN(D2)
結果は4となり、D列がシートの左から4列目であることが分かります。
COLUMN関数では行番号は結果に影響しないため、D1、D2、D100のどれを指定しても結果は4です。

参照先を固定したいときは、=COLUMN($D$2)のように絶対参照にすると、数式をコピーしても対象列を変えずに確認できます。
選択中セルの列番号の読み取り
数式を作らずに一時的な確認だけをしたい場合は、名前ボックスと数式バーを使う方法も便利です。
Excel画面の左上にある名前ボックスには、選択中セルの番地がA2やD10のように表示されます。
列記号を数値へ頭の中で変換する必要はありますが、A列は1、Z列は26、AA列は27という規則を覚えておくと判断しやすくなります。
列記号がZを超える表では、AA列以降が27列目から始まる点に注意しましょう。

複雑な表で列番号を間違えやすいときは、次のh3で説明するCOLUMN関数を補助列に入力しておくと安心です。
列記号と列番号の対応関係
Excelの列はA、B、Cのような英字で表示されますが、関数やVBAでは数値の列番号を使う場面が多くあります。
A列からZ列までは1から26に対応し、AA列は27、AB列は28、AZ列は52、BA列は53です。
列番号の考え方は26進数に近い仕組みですが、ExcelではAを1として扱うため、通常の0始まりの数え方とは異なります。
特にXFD列はExcelワークシートの最終列であり、列番号は16384です。
大量の横方向データを扱うときは、列数の上限も確認しておきましょう。
使用中の列数を数式で調べる方法
| A列 | B列 | C列 | D列 | E列 |
|---|---|---|---|---|
| 商品名 | 数量 | 単価 | 売上金額 | |
| りんご | 12 | 150 | 1800 |
続いては、見出し行を基準に使用中の列数を数式で確認する方法を確認していきます。
【操作のポイント】見出し行に空白がない表なら、COUNTA関数で列数を素早く把握できます。
COUNTA関数で見出しの数を数える方法
1行目にすべての見出しが入力されている表では、COUNTA関数がもっとも分かりやすい方法です。
たとえばA1からD1までに見出しがある場合は、次の数式を入力します。
=COUNTA(A1:XFD1)
この数式の結果は4となり、1行目に入力済みのセルが4個あることを示します。
COUNTA関数は空白ではないセルを数える関数なので、文字列、数値、数式が入ったセルをまとめて対象にできます。

ただし、見出し行の途中に空白セルがあっても、COUNTA関数は後ろにある見出しを含めて数えます。
最終列番号をCOLUMN関数で求める方法
表がA列から始まる場合は、最終列の番号をそのまま使用中の列数として扱えます。
たとえば最終列がD列なら、D1セルを参照するCOLUMN関数の結果は4です。
=COLUMN(D1)
開始列がA列ではない場合は、最終列番号だけでは列数にならないため注意が必要です。
たとえばC列からG列までを使う表では、G列の列番号は7ですが、実際の使用列数は5です。
開始列がA列以外の表では、最終列番号から開始列番号を引いて1を足す計算が必要になります。

空白列があるデータでの注意点
途中に空白列があるデータでは、COUNTA関数の結果と見た目の使用範囲が一致しないことがあります。
たとえばA列、B列、D列に見出しがあり、C列が完全な空白なら、A1からD1の範囲は4列幅でもCOUNTA関数の結果は3です。
入力済みの列数を知りたいならCOUNTA関数、表が占める横幅を知りたいなら最終列番号と開始列番号による計算を使い分けましょう。
印刷範囲や貼り付け範囲を整える目的なら、空白列を含めた横幅を確認する考え方が適しています。
最終使用列を画面上で確認する操作
| A列 | B列 | C列 | D列 |
|---|---|---|---|
| 商品名 | 数量 | 単価 | 売上金額 |
続いては、数式を入力せずに最終使用列を見つける操作について解説していきます。
【操作のポイント】Ctrlキーと方向キーを使うと、連続したデータ範囲の端へ素早く移動できます。
Ctrlキーと右矢印キーによる移動
見出し行の先頭セルであるA1を選択してから、Ctrlキーを押しながら右矢印キーを押すと、連続したデータの右端へ移動します。
サンプル表ではD1が選択されるため、最終使用列がD列であると確認できます。
途中に空白セルがあると、Ctrlキーと右矢印キーは空白の直前で止まることがあります。
データに空白がある場合は、複数回押すか、次の検索機能を利用しましょう。
検索機能による最後の入力セルの確認
表内に空白列や空白セルが多いときは、検索機能で入力済みセルを探す方法が有効です。
CtrlキーとFキーで検索画面を開き、検索する文字列にアスタリスクを入力してすべて検索を実行します。
検索結果の一覧には、文字列を含むセルのセル番地が表示されます。
数値だけのセルも含めて確認したい場合は、検索条件や対象を確認することが大切です。
最も右側にあるセル番地を見れば、使用中の最終列を判断できます。
名前ボックスへのセル番地入力
特定の列番号がどの列記号に対応するかを目視で確かめたい場合は、名前ボックスへセル番地を直接入力します。
たとえばAA1と入力してEnterキーを押すと、AA列の1行目へ移動します。
名前ボックスは、離れた列へ移動するためのショートカットとしても使えます。
大きなワークシートで横スクロールを繰り返すよりも、目的の列をすぐに確認できる操作です。
開始列から最終列までの列数計算
| C列 | D列 | E列 | F列 | G列 |
|---|---|---|---|---|
| 商品名 | 数量 | 単価 | 売上金額 | 担当者 |
続いては、表がA列以外から始まる場合の列数計算について解説していきます。
【操作のポイント】最終列番号だけでなく、開始列番号を差し引くことで正確な横幅を求められます。
COLUMN関数を使った基本式
C列からG列までを使用している表は、見た目では5列ですが、G列の列番号は7です。
このような場合は、次の数式で開始列から最終列までの列数を計算できます。
=COLUMN(G1)-COLUMN(C1)+1
G列の7からC列の3を引き、最後に1を加えるため、結果は5になります。
最後に1を加える理由は開始列そのものも1列として数えるためです。
見出しセルを参照する応用式
列の追加や削除が発生する表では、列記号を数式に直接書くより、見出しセルを参照する形が管理しやすい場合があります。
開始位置をC1、最終位置をG1として参照すれば、列が移動してもセル参照に合わせて計算結果を更新できます。
データの右端を手作業で決める場合は、最終見出しセルを確認して数式へ反映します。
列数の計算では、開始セルと終了セルを同じ行にそろえると数式の意味を読み取りやすくなります。
テーブル機能を利用した列数の把握
データをExcelのテーブルとして登録している場合は、見出しが管理されるため列構成を確認しやすくなります。
表内のセルを選択してCtrlキーとTキーを押すと、テーブルとして書式設定できます。
テーブルの見出し行では、フィルターの一覧から各列名を確認できます。
テーブル化はデータ範囲の拡張にも追従しやすいため、定期的に列が増える一覧表に向いています。
VBAで使用中の最終列を取得する方法
| A列 | B列 | C列 | D列 |
|---|---|---|---|
| 商品名 | 数量 | 単価 | 売上金額 |
続いては、VBAを使って最終使用列や列数を自動取得する方法を解説していきます。
【操作のポイント】VBAではCellsとEndプロパティを使うと、データ末尾の列番号を自動取得できます。
見出し行の最終列番号を取得するコード
1行目の見出しを基準に最終使用列を調べる場合は、ワークシートの右端から左方向へ検索します。
Dim lastCol As Long
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
MsgBox lastCol
このコードでは、1行目の最終入力セルまで移動し、その列番号をlastColへ格納します。
Columns.Countはシートの最終列数である16384を表すため、右端から確実に検索を開始できます。
最終列の列記号を表示するコード
列番号だけでなく、DやAAのような列記号を表示したい場合もあります。
Dim lastCol As Long
Dim colLetter As String
lastCol = Cells(1, Columns.Count).End(xlToLeft).Column
colLetter = Split(Cells(1, lastCol).Address(False, False), "1")(0)
MsgBox colLetter
AddressプロパティでD1のようなセル番地を取得し、行番号部分を除いて列記号だけを取り出します。
帳票のチェック結果を利用者へ表示するマクロでは、数値より列記号のほうが分かりやすいこともあります。
空白を考慮したVBA処理の注意点
Endプロパティは連続データの端を探すため、行の途中に空白があるデータでは想定と異なる列を返す可能性があります。
見出し行に空白がないことを前提にするか、検索機能を使った別のロジックを検討しましょう。
VBAの最終列取得では、どの行を基準にするかを先に決めることが安定した自動化につながります。
売上データなら見出し行、明細の入力状況ならデータ行というように、目的に合う基準行を選ぶことが重要です。
まとめ エクセルで使用中の列数・列番号を確認する方法
| 確認したい内容 | 適した方法 |
|---|---|
| 特定セルの列番号 | COLUMN関数 |
| 見出しの入力済み列数 | COUNTA関数 |
| 最終使用列 | Ctrl+右矢印キーまたはVBA |
エクセルで列番号を確認するには、COLUMN関数を使う方法が基本です。
使用中の列数を確認したい場合は、見出し行に空白がなければCOUNTA関数、開始列と最終列の幅を知りたい場合はCOLUMN関数の差を利用しましょう。
表の構造に合った確認方法を選ぶことが、列数の数え間違いを防ぐ近道です。
画面操作ではCtrlキーと右矢印キー、定型作業の自動化ではVBAも活用できます。
列番号と使用範囲を正しく把握し、数式作成、印刷設定、データ整理をよりスムーズに進めましょう。