この記事では、セルの列のアルファベットが何なのかを調べる方法についてご説明します。
【前提】Excelって列はアルファベットで表示されるのになぜわざわざアルファベットの列を調べる必要があるの?と思うかもしれませんが…
Excelって列はアルファベットで表示されるので、なぜわざわざアルファベットの列を調べる必要があるの?と思いますよね。
では調べる必要がある場面として一つ例を挙げると、列の表示が数字になっている場合にもしかしたら必要になるかもしれません。
列の表示が数字になっている、アルファベットで表示されない、というのはどういう状態なのかというと、下の画像の状態です。
以上の画像のようにアルファベットで表示されなくなってしまうと、セルがどのアルファベットの列かわからなくなってしまいます。
なぜ列の表示が数字になっているのかというと、Excelのシートの状態がR1C1参照形式になっているからです。
- 列が数字で表示:R1C1参照形式
- 列がアルファベット(+数字)で表示:A1形式
R1C1参照形式の状態だと、Excelのシートの列の表示がアルファベットから数字に変わります。
R1C1参照形式は下の画面で設定することができます。
※「ファイル」→「オプション」→Excelのオプション画面で「数式」をクリックすると下の画面が開きます。
設定を戻せば(チェックを外せば)再度列をアルファベット表示にすることができますが、設定を変えなくても計算式を使えば簡単にセルの列のアルファベットが何なのかを調べることができます。
また、何かしらの事情でR1C1参照形式の状態のままExcelのシートを扱いたい、という場合でも、これから説明する計算式はお役に立てるかと思います。
使用するExcel関数
今回使用するExcel関数は次の3つになります。
- SUBSTITUTE
- ADDRESS
- COLUMN
Excel関数を組み合わせて作成した数式
先ほどの3つの関数を使って組み立てた数式は次の通りです。
- =SUBSTITUTE(ADDRESS(1,COLUMN(),4),1,)
- 選択されているセルの1行目のセル位置を「A1形式」で取得し(選択されているセルがC3ならセルC1)、その取得したセル位置の「1」の値を取り除いた文字列を取得する
- 選択されているセルの1行目のセル位置を「A1形式」で取得し(選択されているセルがC6ならセルC1)、その取得したセル位置の「1」の値を取り除いた文字列
①COLUMN関数
COLUMN関数は、セルの位置番号を取得する関数です。
列の一番左から数えて何番目なのかを取得することができます。
例えばA列なら1を、C列なら3を返します。
②ADDRESS関数
ADDRESS関数は、引数で指定されたセル位置を取得します。
今回は、行は1、列はCOLUMN関数で取得した列位置のセル位置を取得します。
ADDRESS関数の1つ目の引数ADDRESS関数の1つ目の引数には行位置を指定します。
今回はこの行位置に1を指定しています。
実はこの1という値は「何でも構わない適当に指定した」値なんです。
というのも、本記事のテーマは列のアルファベットを取得したいので、行はいらないんです。列だけが欲しいんです。
列だけが欲しいけれどもその列のアルファベットを取得するのにADDRESS関数を利用しているのですが、ADDRESS関数には必ず行位置を引数に指定しなければならない仕様なので、適当に値を1指定しています。
この1という値は、この後で説明するSUBSTITUTE関数で取り除きます。列のアルファベットだけが欲しいので。
ADDRESS関数の2つ目の引数ADDRESS関数の2つ目の引数にはCOLUMN関数で取得した列位置を指定します。
先ほどの1つ目の引数(行位置)と、この列位置をADDRESS関数の引数に指定することでセル位置を取得することができます。
ADDRESS関数の3つ目の引数ADDRESS関数の3つ目の引数には参照形式を指定します。
参照形式とは、「絶対参照」と「相対参照」、そしてその2つを組み合わせた4つのパターンがあります。
参照形式の形式には1、2、3、4の4種類の値が指定できます。
- 1:絶対
- 2:行(絶対参照)/列(相対参照)
- 3:行(相対参照)/列(絶対参照)
- 4:絶対←今回はこの4の値を使います
【参考】参照形式に各値(1~4)を設定した結果
今回は参照形式に4を設定しますが、参考までに参照形式に各値(1~4)を設定した結果をお見せします。
1:絶対
セルC1の場合に参照形式に1を指定すると、「$C$」と出力されます。
2:行(絶対参照)/列(相対参照)
セルC1の場合に参照形式に2を指定すると、「C$」と出力されます。
3:行(相対参照)/列(絶対参照)
セルC1の場合に参照形式に3を指定すると、「$C」と出力されます。
4:絶対
セルC1の場合に参照形式に4を指定すると、「C」と出力されます。
②SUBSTITUTE関数
SUBSTITUTE関数は、文字(列)に対して指定した文字(列)を別の文字(列)に置換する関数です。
SUBSTITUTE関数の1つ目の引数SUBSTITUTE関数の1つ目の引数には、ADDRESS関数が取得したセル位置を指定します。
SUBSTITUTE関数の2つ目の引数SUBSTITUTE関数の2つ目の引数には、置換したい対象の文字(列)を指定します。
今回はADDRESS関数が取得したセル位置から1(の文字)を削除するため、2つ目の引数に1を指定します。
SUBSTITUTE関数の3つ目の引数SUBSTITUTE関数の3つ目の引数には、置換したい対象の文字(列)を指定します。
今回は2つ目の引数に指定した1の値をブランクに置換したいので指定は無しにしています。
3つ目の引数に何も指定しないと、1つ目の引数の値から2つ目の引数をブランクに置き換えてくれます(文字(列)の削除に近いイメージ)
アルファベットの列を取得する例
【ケース①】一番左のセルの場合
一番左のセルの列番号はAなので、セルには値「A」が表示されています。
【ケース①】左から10番目のセルの場合
一番左のセルの列番号はJなので、セルには値「J」が表示されています。
【ケース①】一番右(最後列)のセルの場合
一番右(最後列)のセルの列番号はXFDなので、セルには値「XFD」が表示されています。
参考に、A1形式で表示させて確認してみると確かにXFDと表示されています。
最後に
本記事では、セルの列のアルファベットが何なのかを調べる方法についてご説明しました。
何かの理由でExcelのシートをR1C1参照形式に設定して作業をしているときに、この列のアルファベットが何かすぐに特定できないことがあるかもしれません。
一番左のセルや、左から数えて数列程度の右のセルの列ならすぐにアルファベットは分かるかもしれません。
ですが数十、数百右の列のセルだとすぐにはアルファベットが何なのかわからないと思うので、もし知りたい場合は今回の記事を参考にしてみてくださいね。
プログラミングのスキルを習得するなら
プログラミングのスキルを習得したい、今のスキルをもっと高めたい、そう考えているなら「プログラミングスクール」がおすすめです。
プログラミングのスキルの基礎を身につけるなら「TechAcademy」で1週間の無料体験があるので、これで「プログラミングの基礎」を学ぶのにおすすめですよ。