【エクセル関数】列番号をアルファベットで表示させる方法(A~Zまでの一覧を作りたい人にもおすすめ)

列番号を表示させる関数といえば…

列番号を表示させる関数といって、一番におもいつくのは「COLUMN関数」ですよね。
でも、COLUMN関数だと、数字で表示されちゃいます。
数字でもよければ問題ないのですが・・・、列番号をアルファベットで表示させたい場合は、COLUMN関数では実現できないのです。
そこで・・・「ADDRESS関数」を駆使して実現していきましょう!!

ADDRESS関数を使用して列番号をアルファベットで表示させる方法/答え!

いきなりですが、答えです(笑)
ADDRESS関数を使って列番号を表示させるには、表示させたいセルに以下の数式を入力すればOKです!

=LEFT(ADDRESS(ROW(),COLUMN(),4,1),LEN(ADDRESS(ROW(),COLUMN(),4,1))-LEN(ROW()))

やり方だけを知りたい方は、↑の数式をコピーしてみてください(^^)
エクセルのお勉強のために、「なんで???」を知りたい方は、ぜひ以下の解説も読み進めてみてください。

ADDRESS関数を使って列番号をアルファベットで表示させる方法/解説

ADDRESS関数

まずは、ADDRESS関数の基礎を抑えましょう。(赤字部分です)
=LEFT(ADDRESS(ROW(),COLUMN(),4,1),LEN(ADDRESS(ROW(),COLUMN(),4,1))-LEN(ROW()))

ADDRESS(行番号,列番号,[参照の種類],[参照形式],[シート名])

ADDRESS関数は、行番号と列番号を指定して、セルのアドレス(A1とかB3とか)を表示させることができます。

引数必須or任意 説明
行番号必須表示させたいセルの行番号を入力します。
今回は行番号の部分に「ROW関数」を使用しているため、
入力したセルの行番号を表示させています。
列番号必須表示させたいセルの列番号を入力します。
今回は行番号の部分に「COLUMN関数」を使用しているため、
入力したセルの列番号を表示させています。
参照の種類任意絶対参照or相対参照可を指定します。
1または省略…絶対参照($A$1の状態)
2…行は絶対参照、列は相対参照(A$1の状態)
3…行は相対参照、列は絶対参照($A1の状態)
4…相対参照(A1の状態)
今回は$マークは不要なため、4を指定しています。
参照形式任意表示形式について「A1」or「R1C1」を指定します。
1(True)または省略…「A1」形式で表示されます
0(False)… 「R1C1」形式で表示されます
今回は「A1」形式で表示させたいため、1を指定しています。
シート名任意外部参照(別のシートを指定する場合)を使用する場合に入力します。
今回は、作業シートと数式を入力するシートが同一のため入力していません。

ということで、「ADDRESS(ROW(),COLUMN(),4,1)」の結果は、「A1」となります。

LEN関数

次に、LEN関数部分を確認していきましょう。(青字部分です)
=LEFT(ADDRESS(ROW(),COLUMN(),4,1),LEN(ADDRESS(ROW(),COLUMN(),4,1))-LEN(ROW()))

=LEN(文字列)

LEN関数は文字列の長さ(=文字数)を表示させます。

先ほど確認した通り、 「ADDRESS(ROW(),COLUMN(),4,1)」の 結果は、「A1」なので…
「LEN(”A1″)」の結果(=A1の文字数)は「2」になります。
また、「ROW()」の結果は「1」のため、「=LEN(ROW())」の結果(=1の文字数)は「1」となります。
そのため、 LEN(ADDRESS(ROW(),COLUMN(),4,1))-LEN(ROW()) の結果は、
「2」-「1」となり、「1」となります。

LEFT関数

最後に、LEFT関数を確認しましょう。(緑字部分です)

=LEFT(ADDRESS(ROW(),COLUMN(),4,1),LEN(ADDRESS(ROW(),COLUMN(),4,1))-LEN(ROW()))

=LEFT(文字列,[文字数])

LEFT関数は、文字列の先頭(左側)から指定した文字数の文字を表示させます。

引数必須or任意説明
文字列必須対象となる文字列を指定します。
一般的には対象のセルを指定しますが、文字列を直接入力することも可能です。
セルを指定する場合…=LEFT(B1) 
文字列を直接入力する場合…=LEFT(”あいうえお”)
文字数任意表示させる文字数を指定します。
省略した場合は、1を入力したとみなされます。

ということで、
「ADDRESS(ROW(),COLUMN(),4,1)」は「A1」、
「LEN(ADDRESS(ROW(),COLUMN(),4,1))-LEN(ROW())」は「1」のため、
=LEFT(“A1”,1) となり、A1という文字列の左から1文字を表示させるため…結果は「A」となります。
無事、列のアルファベットを表示させることに成功しました!

なんでこんな面倒なの?

「A1」とか「B3」とか、列番号・行番号ともに文字数が1であれば、こんな面倒な数式を使わなくてもよいのですが…エクセルは最大「XFD1048576」セルを指定することができてしまいます。
列番号・行番号が増えるたびに数式を修正するのは面倒なため、こんな面倒なことをしている次第です(^-^;

A~Zを作りたい場合

1~100までの連番を作成するときは、ROW関数やオートフィルを用いると簡単にできますが…アルファベットの連番を作成する際は意外と面倒です。
その際に、この数式をA列からZ列まで入力して、コピー→行列を入れ替えて貼り付けすると、比較的簡単に作成できます。(アルファベットの連番を作成する方法はもちろんほかにもありますが…)
もしよければお試しください(^^)

最後まで、お読みいただきありがとうございましたm(__)m
読んでくださった方の少しでもお役に立てていれば何よりです。

コメント