【Excel】エクセルでアルファベットと数字を変換する方法(列番号・関数・表示に戻す)
Excelでは、列見出しのA、B、Cを数字の列番号へ変換したい場面や、反対に列番号からアルファベットを表示したい場面があります。
たとえば、VBAで列を指定するときは数値が便利ですが、表を確認するときはA列やAA列といったアルファベット表示のほうが直感的です。
この記事では、Excelの列番号とアルファベットを相互に変換する関数、R1C1形式の設定、表示を元に戻す手順まで解説します。
覚えておきたいポイントは、COLUMN関数で列番号を取得できること、ADDRESS関数で列記号を取り出せること、表示形式はExcelのオプションから切り替えられることです。
サンプルでは、1行目をヘッダーとし、データは2行目から入力する前提で説明します。
エクセルで列番号をアルファベットへ変換する方法
それではまず、数字で管理している列番号をA、Z、AAのようなアルファベットへ変換する方法について解説していきます。
| 列番号 | 変換後の列記号 |
|---|---|
| 1 | A |
| 26 | Z |
| 27 | AA |
ADDRESS関数とSUBSTITUTE関数の組み合わせ
列番号を列記号へ変えるときは、ADDRESS関数を利用すると安定して処理できます。
たとえばA2セルに27が入力されている場合、B2セルへ次の数式を入力します。
=SUBSTITUTE(ADDRESS(1,A2,4),”1″,””)
ADDRESS関数は行番号と列番号からセル番地を返す関数です。
ADDRESS(1,27,4)の結果はAA1となるため、SUBSTITUTE関数で行番号の1を空白へ置換するとAAだけを取り出せます。
第3引数を4にすることで、$A$1ではなくA1形式の番地を取得できる点が重要です。

列記号がZを超えるとAA、AB、ACと続くため、単純にCHAR関数だけで処理すると26列以降で対応できません。
ADDRESS関数を使う方法なら、XFD列までのExcel標準の列記号に対応できます。
【操作のポイント】数式中の1は仮の行番号です。列記号だけを使う目的なら、常に1を指定して問題ありません。
サンプルデータへの数式入力とオートフィル
続いては、複数の列番号をまとめて変換する入力方法を確認していきます。
A1に列番号、B1に列記号というヘッダーを入力し、A2からA6に1、2、26、27、52を入力します。
B2へ数式を入力した後、セル右下のフィルハンドルを下方向へドラッグすると、各行の値に合わせて結果が表示されます。
数式を最初のデータ行である2行目へ入力してオートフィルすると、参照先のずれを防げます。
A2が1ならB2はA、A4が26ならB4はZ、A5が27ならB5はAAになります。文字列として列記号を一覧化したいときに便利な方法です。
変換結果を他の資料へ貼り付ける場合は、コピー後に値として貼り付けを行うと、元の列番号を変更しても結果が変わらない固定データになります。
【操作のポイント】列記号を計算結果として残すなら通常の貼り付け、確定値として残すなら値の貼り付けを選びましょう。
VBAで列番号を列記号へ変換する処理
続いては、マクロの中で列番号を列記号に変換したい場合を確認していきます。
VBAではCells(1, 列番号).Addressを使うと、ワークシート上の列番号をセル参照へ変換できます。
|
1 2 3 4 5 6 7 8 9 |
Sub ConvertColumnNumberToLetter() Dim columnNumber As Long Dim columnLetter As String columnNumber = 27 columnLetter = Replace(Cells(1, columnNumber).Address(False, False), "1", "") MsgBox columnLetter End Sub |
この例では27を指定しているため、メッセージボックスにはAAと表示されます。
Cellsの第1引数は行番号、第2引数は列番号です。
マクロで最終列を調べたり、帳票の列を動的に扱ったりするときに役立つ記述です。
【操作のポイント】対象シートを明確にしたい場合は、Cellsの前にWorksheets(“集計”).を付けて参照先を固定します。
エクセルでアルファベットを列番号へ変換する方法
続いては、AやAAといったアルファベットの列記号を数値の列番号へ変換する方法を確認していきます。
| 列記号 | 列番号 |
|---|---|
| A | 1 |
| Z | 26 |
| AA | 27 |
COLUMN関数で列番号を取得する方法
それでは、COLUMN関数を使った基本的な変換について解説していきます。
A2セルにA、A3セルにZ、A4セルにAAのように列記号を入力している場合、B2には次の数式を入力します。
=COLUMN(INDIRECT(A2&”1″))
INDIRECT関数でA2の文字列へ1をつなげ、A1やAA1というセル参照に変換します。
その参照先をCOLUMN関数へ渡すことで、Aなら1、Zなら26、AAなら27を取得できます。
列記号だけではセル参照にならないため、末尾へ行番号を加えるのが数式のポイントです。
入力値に小文字のaaが含まれていても、Excelは通常はAAとして解釈します。
ただし、前後に空白が入っていると参照エラーになる可能性があるため、入力規則やTRIM関数で整えておくと安心です。
【操作のポイント】INDIRECT関数は文字列を参照へ変換する関数です。列記号の入力セルが変わると結果も自動で更新されます。
列番号と列記号の対応ルール
続いては、Excelの列記号がどのような規則で進むかを確認していきます。
1から26まではAからZまでの一文字で表され、27からはAA、AB、ACの二文字表記になります。
つまりAAは、Aが二つ並んでいるため単純に1と1をつなげた値ではありません。
AAは26×1+1で27、AZは26×1+26で52、BAは26×2+1で53という考え方です。
Excelの列記号は26進数に似た仕組みですが、ゼロに相当する文字がないことが特徴です。
この規則を理解すると、数式やVBAで列番号を扱う際に、AA列以降で起こりやすい計算ミスを減らせます。
【操作のポイント】AからZまでしかない表では問題が見えにくいため、検証時にはAA列やAZ列も含めて確認しましょう。
VBAで列記号から列番号を取得する処理
続いては、VBAで列記号を数値へ変換する方法を確認していきます。
|
1 2 3 4 5 6 7 8 9 |
Sub ConvertColumnLetterToNumber() Dim columnLetter As String Dim columnNumber As Long columnLetter = "AA" columnNumber = Range(columnLetter & "1").Column MsgBox columnNumber End Sub |
Range(“AA1”).Columnは、AA列の番号である27を返します。
Rangeで有効なセル番地を作り、そのColumnプロパティを読むだけなので、VBAでも比較的わかりやすい方法です。
ユーザーが入力した列記号をもとに集計列を切り替えるマクロなどで利用できます。
【操作のポイント】入力された文字に空白が混じる可能性がある場合は、Trim関数で空白を除いてからRangeへ渡します。
エクセルのR1C1参照形式による表示切り替え
それでは、A1形式の列アルファベットを数字表示へ変えるR1C1参照形式について解説していきます。
| 表示形式 | 列の見出し | セル例 |
|---|---|---|
| A1参照形式 | A、B、C | B2 |
| R1C1参照形式 | 1、2、3 | R2C2 |
R1C1参照形式の意味
続いては、R1C1参照形式の読み方を確認していきます。
RはRowの頭文字で行を表し、CはColumnの頭文字で列を表します。
したがってR2C3は、2行目かつ3列目のセル、A1形式ではC2セルを意味します。
R1C1形式では、列見出しもセル参照も数字を中心に扱えるため、列番号を意識する数式やVBAとの相性があります。
A1形式のC2は、R1C1形式ではR2C3です。
ただし、日常的な表作成ではA1形式のほうが広く使われているため、意図せず切り替わった場合は元へ戻すほうが読みやすいでしょう。
【操作のポイント】R1C1のRとCは固定の記号です。Rが列、Cが行ではない点に注意しましょう。
オプション画面からR1C1参照形式を有効にする手順
続いては、列を数字表示へ切り替える操作手順を確認していきます。
Excelのファイルタブを開き、左下のオプションを選択します。
Excelのオプション画面で数式を選び、数式の処理項目にあるR1C1参照形式を使用するへチェックを入れます。
OKを選択すると、列見出しのA、B、Cが1、2、3へ変わります。
この設定は開いているブックだけではなく、Excelの表示設定として反映されるため、複数のブックで確認するときも注意が必要です。
ファイル、オプション、数式、R1C1参照形式を使用する、OKという順番で操作します。
数式バー内の参照表記も同時に変化するため、普段のA1形式に慣れている場合は、切り替え後に数式を編集すると戸惑うかもしれません。
【操作のポイント】設定後に列見出しが数字へ変わらない場合は、Excelを再起動せず、開いているシートを切り替えて表示を確認します。
R1C1参照形式をアルファベット表示へ戻す手順
続いては、数字になった列見出しをA、B、Cの表示に戻す操作を確認していきます。
ファイルタブからオプションを開き、数式の画面へ移動します。
R1C1参照形式を使用するのチェックを外し、OKを押せばA1参照形式へ戻ります。
列番号が突然数字になったトラブルの多くは、このチェックが有効になっている状態です。
共有ファイルでセル番地を会話するときも、A1形式に統一しておくと認識違いを防ぎやすくなります。
【操作のポイント】元に戻した後は、数式バーでR2C3のような表示がC2へ戻っていることも確認しましょう。
エクセル関数による列番号の取得と活用
それでは、列番号を数式の中で取得し、表の作成や参照に活用する方法について解説していきます。
| 商品 | 数量 | 列番号 |
|---|---|---|
| りんご | 3 | 3 |
COLUMN関数の基本
続いては、COLUMN関数の基本的な使い方を確認していきます。
=COLUMN()と入力すると、数式を入力したセル自身の列番号を返します。
たとえばC2セルに入力すれば3、AA2セルに入力すれば27という結果になります。
=COLUMN(C2)
この数式はC列を指定しているため、入力場所にかかわらず3を返します。
参照を省略したCOLUMN関数は入力セルの列番号を返し、参照を指定した場合は指定先の列番号を返すという違いがあります。
横方向へコピーする連番や、指定列の位置を調べる数式で有用です。
【操作のポイント】コピーする数式では、COLUMN()の参照有無によって結果が変わるため、先に少数のセルで確認します。
列番号を使った横方向の連番作成
続いては、COLUMN関数で横方向の番号を作る方法を確認していきます。
A1を1として開始したい場合、A2に次の数式を入力して右へコピーします。
=COLUMN(A1)
A列では1、B列では2、C列では3と、コピー先の列に応じて連番が表示されます。
開始位置がC列であっても1から始めたい場合は、=COLUMN()-COLUMN($C$1)+1のように基準列を引きます。
基準セルを絶対参照にすることで、オートフィルしても開始位置が固定されます。
月別の見出し番号、横長の入力シート、列単位の集計表などで利用できる考え方です。
【操作のポイント】数式を右へコピーする前に、基準セルの列へ$を付けて固定します。
列番号を使う数式作成時の注意点
続いては、列番号を数式へ組み込むときの注意点を確認していきます。
INDIRECT関数は便利ですが、参照先を文字列として作るため、大量のデータでは再計算に影響することがあります。
単純な参照で済む場合は、INDEX関数やXLOOKUP関数なども検討するとよいでしょう。
列番号の変換自体が目的なのか、値を取得することが目的なのかを分けて考えると、適切な関数を選びやすくなります。
また、列の挿入や削除が予定される表では、列番号を固定値として書き込むと後からずれる可能性があります。
テーブル機能や見出し名を使った参照を併用すると、表の構造変更にも対応しやすくなります。
【操作のポイント】列の位置が変わる可能性がある帳票では、列番号だけに依存した数式を増やしすぎないようにします。
エクセルの列番号とアルファベット変換の注意点
それでは、変換時に起こりやすいエラーや見落としやすい注意点について解説していきます。
| 確認項目 | 注意点 |
|---|---|
| 列記号 | AA以降も含めて検証する |
| 入力値 | 空白や全角文字を確認する |
最大列数とXFD列の制限
続いては、Excelで扱える列数の上限を確認していきます。
現在のExcelワークシートでは、最終列はXFD列です。
列番号にすると16384列であり、これを超えるセル参照は作成できません。
変換対象の数値が16384より大きい場合は、通常のExcelシートの列記号としては使えません。
大量の項目を扱う処理では、列ではなく行や別シートへ分割する設計も必要になります。
【操作のポイント】変換元の列番号に上限チェックを入れると、無効な参照の発生を抑えられます。
全角文字と余分な空白の確認
続いては、入力した列記号が正しく変換されない場合の確認点を解説していきます。
AAのような全角アルファベットや、AAの後ろに空白が付いた文字列は、INDIRECT関数で正しく参照できないことがあります。
入力値を整えるには、TRIM関数で余分な空白を削除し、必要に応じてASC関数で半角へ変換します。
=COLUMN(INDIRECT(ASC(TRIM(A2))&”1″))
手入力データを扱う場合は、変換の前に文字種と空白を整えることがエラー対策になります。
業務シートでは入力規則のリストを設け、A、B、Cなどの候補から選べるようにする方法も有効です。
【操作のポイント】数式エラーが出たときは、セルを編集状態にして見えない空白がないか確認します。
A1参照形式とR1C1参照形式の混同
続いては、参照形式の混同による誤解を確認していきます。
A1形式のB2と、R1C1形式のR2C2は同じセルを示します。
しかし、R1C1形式のCは列を意味する記号であり、A1形式のC列そのものではありません。
数式をコピーするときは、R
C[-1]のように相対位置で表すこともあります。
R1C1形式では、Cの後ろの数字が列番号を表すと理解しておくと混乱を避けられます。
【操作のポイント】他者から受け取った数式の表記が違う場合は、まずExcelの参照形式設定を確認します。
まとめ エクセルで数字とアルファベットを変換する方法
エクセルで列番号とアルファベットを変換する方法は、目的に合わせて選択できます。
数値から列記号を出す場合は、=SUBSTITUTE(ADDRESS(1,A2,4),”1″,””)を使うと、1をA、27をAAとして取得できます。
列記号から数値を出す場合は、=COLUMN(INDIRECT(A2&”1″))でAを1、AAを27へ変換できます。
列見出し自体を数字へ変えたい場合は、R1C1参照形式を使用する設定を有効にします。
元のA、B、C表示に戻したいときは、ファイル、オプション、数式からR1C1参照形式を使用するのチェックを外しましょう。
関数を使う場合は、AA列以降の変換、全角文字や空白、最大列数のXFD列までを意識することが大切です。
列番号と列記号の仕組みを使い分ければ、数式の作成、VBAの記述、データ整理をよりスムーズに進められます。