エクセルを開いたら列ヘッダーがいつものアルファベット(A・B・C…)ではなく、数字(1・2・3…)に変わっていて驚いた経験はありませんか。
また逆に、数式の中で列番号を数字として取得したい、アルファベットで取得したいという場面もあるかもしれません。
列番号の表示や取得方法を正しく理解しておくと、トラブル対応から関数の応用まで幅広く役立てることができます。
この記事では【Excel】エクセルで列番号の表示変更(数字からアルファベット・英語表記・関数で取得)について解説していきます。
・列ヘッダーが数字になる原因と元に戻す方法
・COLUMN関数で列番号を数字として取得する
・列番号をアルファベット(英語表記)で取得する関数の組み合わせ
・ADDRESS関数とSUBSTITUTE関数を使った応用テクニック
それでは詳しく見ていきましょう。
サンプルデータの確認
今回は以下のサンプルデータをもとに解説していきます。
1行目がヘッダー行で、商品ごとの売上データが入力されているシートを想定してください。
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | 商品名 | 4月売上 | 5月売上 | 6月売上 | 合計 |
| 2 | 桜餅 | 120,000 | 85,000 | 40,000 | 245,000 |
| 3 | 柏餅 | 95,000 | 130,000 | 60,000 | 285,000 |
| 4 | マシュマロ | 55,000 | 62,000 | 78,000 | 195,000 |
| 5 | チョコ | 200,000 | 150,000 | 90,000 | 440,000 |
| 6 | アボカド | 45,000 | 50,000 | 65,000 | 160,000 |
この表を使って列番号の表示設定や、関数による列番号の取得方法を確認していきましょう。
エクセルの列ヘッダーが数字になる原因と対処法1【R1C1参照形式を解除する】

エクセルを操作していると、ある日突然列ヘッダーがA・B・Cではなく1・2・3という数字に変わっていることがあります。
これはエクセルの参照形式が「A1形式」から「R1C1形式」に切り替わっていることが原因です。
R1C1形式とは行(Row)と列(Column)をどちらも数字で表す参照方式で、通常使われるA1形式とは異なる表記です。
R1C1形式に切り替わると、列ヘッダーがアルファベットではなく数字で表示され、数式内のセル参照もR1C1形式の表記に変わります。
たとえば通常「=B2」と書く数式が「=R2C2」という表記になります。
見慣れない表示に戸惑う方が多いですが、設定を変更するだけで元のアルファベット表示に戻せます。
列ヘッダーをアルファベットに戻す手順
「ファイル」タブをクリックし「オプション」を選択します。
「Excelのオプション」ダイアログが開いたら、左側のメニューから「数式」を選択します。
「数式の処理」セクションの中に「R1C1参照形式を使用する」というチェックボックスがあります。
このチェックが入っている場合はクリックしてチェックを外し「OK」をクリックします。
【【ここに図を入れる:ExcelオプションのR1C1参照形式のチェックを外す画面】】
これで列ヘッダーが元のA・B・C…というアルファベット表示に戻ります。
R1C1形式は意図せず切り替わっていることが多く、誰かが共有ファイルを操作した際に変わってしまうケースもあります。
列ヘッダーが数字になっていたらまずこの設定を確認しましょう。
R1C1形式とA1形式の違いを理解する
A1形式は列をアルファベット、行を数字で表す通常の参照形式です。
R1C1形式は行(Row)と列(Column)をどちらも数字で表す参照形式で、マクロ(VBA)の記述では R1C1形式が使われることがあります。
通常の表計算作業ではA1形式が圧倒的に使いやすいため、特別な理由がない限りA1形式を使用することをおすすめします。
列ヘッダーが数字になったらファイル→オプション→数式→「R1C1参照形式を使用する」のチェックを外すだけで元に戻ります。この設定はエクセル全体の設定として保存されるため、一度変更すれば以降開くすべてのファイルに適用されます。他のパソコンで開いたファイルが数字表示になっていた場合も同じ手順で対処できます。
エクセルでCOLUMN関数を使って列番号を数字で取得する方法2
列ヘッダーの表示設定とは別に、数式の中で列番号を取得したい場面があります。
たとえば動的に列番号を参照したいときや、INDEX関数やMATCH関数と組み合わせて使いたいときに列番号を数値として取得できると便利です。
COLUMN関数はセルの列番号を数値で返す関数で、使い方がシンプルで非常に使いやすい関数のひとつです。
COLUMN関数の基本的な使い方
COLUMN関数の書式は以下のとおりです。
=COLUMN(参照)
引数の「参照」には列番号を調べたいセルまたは範囲を指定します。
引数を省略すると、COLUMN関数が入力されているセル自身の列番号が返されます。
たとえばB2セルに「=COLUMN(B2)」と入力すると、B列は2列目なので「2」が返されます。
同様にD列のセルに対してCOLUMN関数を使うと「4」が返されます。

実際のサンプルでCOLUMN関数を使う
サンプルデータのB2セル(4月売上:120,000)の列番号を取得したい場合は以下の数式を使います。
=COLUMN(B2)
結果:2
E2セル(合計:245,000)の列番号を取得する場合は以下のとおりです。
=COLUMN(E2)
結果:5
COLUMN関数は引数を省略して「=COLUMN()」とすると、その数式が入力されているセルの列番号を返します。
行番号と組み合わせて連番を自動生成したり、配列数式と組み合わせて動的な範囲指定を行ったりと応用範囲が広い関数です。
COLUMNS関数との違い
COLUMN関数と似た関数にCOLUMNS関数があります。
COLUMNS関数は指定した範囲の「列数(何列あるか)」を返す関数で、列番号を返すCOLUMN関数とは役割が異なります。
たとえば「=COLUMNS(B2:E2)」と入力するとB列からE列までの列数「4」が返されます。
列番号が必要な場合はCOLUMN、範囲の列数が必要な場合はCOLUMNSと使い分けましょう。
COLUMN関数は引数を省略すると入力セル自身の列番号を返します。数式をコピーして横方向に展開する際に連番を自動生成するテクニックとして活用できます。COLUMNS関数は範囲の列数を返す関数でCOLUMN関数とは役割が異なるため、混同しないよう注意しましょう。
エクセルで列番号をアルファベット(英語表記)で取得する方法3【関数の組み合わせで実現する】
COLUMN関数で取得できるのは数値の列番号ですが、「B」や「D」といったアルファベット形式で列番号を取得したい場面もあります。
エクセルにはアルファベットで列番号を直接返す専用関数はありませんが、SUBSTITUTE関数とADDRESS関数を組み合わせることで列のアルファベット表記を取得できます。
ADDRESS関数の基本を理解する
ADDRESS関数は行番号と列番号からセルアドレスを文字列として返す関数です。
書式は以下のとおりです。
=ADDRESS(行番号, 列番号, 参照の種類, 参照形式, シート名)
たとえば「=ADDRESS(1, 2)」と入力すると「$B$1」という文字列が返されます。
第3引数に「4」を指定すると相対参照形式になり「B1」という文字列が返されます。
この返された文字列から数字部分を取り除くと列のアルファベットだけを取り出せます。

SUBSTITUTE関数とADDRESS関数を組み合わせる
列番号のアルファベットを取得するための数式は以下のとおりです。
=SUBSTITUTE(ADDRESS(1, COLUMN(B2), 4), “1”, “”)
結果:B
この数式の仕組みを順番に確認していきましょう。
まずCOLUMN(B2)でB2セルの列番号「2」を取得します。
次にADDRESS(1, 2, 4)で「B1」という文字列を生成します。
最後にSUBSTITUTE関数で「1」という文字を空文字(””)に置き換えることで「B」だけが残ります。
サンプルデータのE列(合計列)のアルファベットを取得したい場合は以下のようになります。
=SUBSTITUTE(ADDRESS(1, COLUMN(E2), 4), “1”, “”)
結果:E
特定の列番号から直接アルファベットを取得する方法
列番号が数値でわかっている場合は、COLUMN関数を使わずに直接数値を指定することもできます。
=SUBSTITUTE(ADDRESS(1, 3, 4), “1”, “”)
結果:C(3列目=C列)
26列を超えるAA列以降の場合も、この数式であれば正しく「AA」「AB」といった複数文字のアルファベットが返されます。
SUBSTITUTE(ADDRESS(1, 列番号, 4), “1”, “”)がアルファベット列番号取得の基本パターンです。ADDRESS関数の第3引数を「4」にすることで相対参照形式(ドルマークなし)のアドレス文字列が得られるのがポイントです。26列以降のAA・AB列などにも対応できるため、大きな表での列管理にも活用できます。
エクセルでCELL関数を使って列番号情報を取得する方法4【セル情報を多角的に活用する】
COLUMN関数以外にも、CELL関数を使って列に関する情報を取得する方法があります。
CELL関数は指定したセルの書式・位置・内容などさまざまな情報を返す関数で、列のアドレス情報もその取得対象のひとつです。
CELL関数の基本的な使い方
CELL関数の書式は以下のとおりです。
=CELL(検査の種類, 参照)
第1引数の「検査の種類」には取得したい情報の種類を文字列で指定します。
列番号に関連する主な検査の種類は以下の2つです。
「col」を指定するとセルの列番号が数値で返されます。
「address」を指定するとセルの絶対参照アドレスが文字列で返されます。

CELL関数で列番号を取得する例
サンプルデータのD2セル(6月売上:40,000)の列番号を取得する場合は以下のとおりです。
=CELL(“col”, D2)
結果:4
アドレス全体を取得する場合は以下のとおりです。
=CELL(“address”, D2)
結果:$D$2
CELL関数で取得したアドレス文字列からアルファベット部分だけを取り出すにはLEFT関数やSUBSTITUTE関数と組み合わせる必要があります。
単純に列番号を数値で取得したい場合はCOLUMN関数のほうがシンプルで使いやすいでしょう。
CELL関数は列番号以外にもセルの書式情報やファイルパスなど多様な情報を取得できる万能な関数です。列番号だけを取得するのであればCOLUMN関数のほうがシンプルですが、セルの複合情報を一括取得したい場面ではCELL関数が役立ちます。CELL関数は揮発性関数のため、シート内の変更があるたびに再計算されます。大量に使用するとファイルの動作が重くなる場合があるため使用数には注意しましょう。
エクセルでINDIRECT関数と列番号を組み合わせる方法5【動的な列参照を実現する】
取得した列番号を活用して動的にセル範囲を参照する方法として、INDIRECT関数との組み合わせがあります。
INDIRECT関数は文字列で指定したセルアドレスを実際のセル参照に変換する関数で、列番号のアルファベットと組み合わせることで柔軟な参照が実現できます。
INDIRECT関数の基本的な使い方
INDIRECT関数の書式は以下のとおりです。
=INDIRECT(参照文字列)
引数には「”B2″」や「”D:D”」のようなセルアドレスの文字列を指定します。
文字列として組み立てたアドレスを実際の参照として使えるのがこの関数の最大の特徴です。

列番号のアルファベットとINDIRECT関数を組み合わせる
たとえばG1セルに「B」という列名が入力されている場合、そのB列の2行目のデータを参照するには以下のような数式を使います。
=INDIRECT(G1&”2″)
G1に「B」が入力されている場合の結果:120,000(B2セルの値)
G1セルの値を「C」に変えると自動的にC2セルの値(85,000)が返されるようになります。
列名をセルで管理することで、参照列を動的に切り替えられる仕組みが作れます。
SUBSTITUTE・ADDRESS・INDIRECTを組み合わせた応用例
COLUMN関数で取得した列番号をアルファベットに変換し、さらにINDIRECT関数で動的参照するという応用もできます。
=INDIRECT(SUBSTITUTE(ADDRESS(1, COLUMN(B2), 4), “1”, “”)&”2″)
結果:120,000(B2セルの値と同じ)
一見複雑に見えますが、列を動的に切り替えながらデータを参照するような高度な表を作る場面で力を発揮する組み合わせです。
INDIRECT関数は文字列を実際のセル参照に変換するため、列名や行番号を変数として管理できるようになります。ただしINDIRECT関数も揮発性関数のため、多用するとファイルが重くなる可能性があります。動的参照が必要な箇所に絞って使うことで、パフォーマンスへの影響を最小限に抑えられます。
まとめ エクセルで列番号の表示方法(関数・表示されない・アルファベット・英語表記)
エクセルで列番号の表示変更と関数による取得方法をまとめると以下のとおりです。
列ヘッダーが数字になっている場合はR1C1参照形式が有効になっているためで、ファイル→オプション→数式から「R1C1参照形式を使用する」のチェックを外すだけで元のアルファベット表示に戻ります。
COLUMN関数を使うと指定したセルの列番号を数値として取得でき、引数を省略すると入力セル自身の列番号が返されます。
列番号をアルファベットで取得したい場合はSUBSTITUTE関数とADDRESS関数を組み合わせた「=SUBSTITUTE(ADDRESS(1, COLUMN(対象セル), 4), “1”, “”)」が基本のパターンです。
CELL関数を使うと列番号以外にもセルのさまざまな情報を取得できますが、揮発性関数のため多用するとパフォーマンスに影響する場合があります。
INDIRECT関数と組み合わせることで列名を動的に切り替えながらデータを参照する高度な仕組みも作れます。
列番号の表示トラブルへの対処から関数の応用まで、今回紹介した知識を活用してエクセルをより快適に使いこなしていきましょう。


コメント