見出し画像

Excel小技 列番号(数値・英字)の相互変換

こんにちは、そくにゃんです。
今回はセルのアドレス参照に関する小技をご紹介します。

セルのアドレス・行番号と列番号について

Excelのセルの位置を表すコードをアドレス呼び、例えば一番左上のセルは"A1"と表されます。
このアドレスは行番号と列番号から成り立っており、セル"A1"の場合、行番号が "1" 列番号は "A" または "1" となります。
行番号は常に数値で表されるのですが、列番号はこの2種類を使い分けなければいけません。これらの列番号を相互に変換する技を持っていると、セルを参照する際に使える数式の幅が広がります。

行番号の相互変換(例)

キャプチャ

↑は、列番号(数値)"100"を英字に変換し、それを更に逆変換する流れを示したものです。使用している数式の解説をします。

① 列番号"100"の1行目のセルのアドレスを取得する。
【数式の解説】=ADDRESS(1,B3,4)
[1]行目 , セル[B3]の値(100)列目 , [相対参照]のアドレスを取得する。
数式の最後の数値"4"が相対参照を示すコード。例えば、ここの数値を"1"とすると絶対参照となり、数式の結果は"$CV$1"となりますが、今回の用途では使用しません。
絶対参照と相対参照についての説明は割愛します。
結果:"CV1"

② ①で取得したアドレス"CV1"の"1"のみを削除し、列番号(英字)のみを残す。
【数式の解説】=SUBSTITUTE(E6,1,"")
セル[E6]の値(文字列"CV1")の[1][]に置換する。([1]を削除するのと同義)
これで列番号の変換は完了です。
結果:"CV"

③ ②で取得した列番号(英字)"CV"から列番号(数値)を取得する。
【数式の解説】=COLUMN(INDIRECT(E7&1))
セル[E7]の値(文字列"CV")と"1"の合成文字列("CV1")の列番号(数値)を取得する。
列番号が英字から数値に戻ります。
結果:"100"

まとめ

変換方法を簡潔にまとめると、

数値→英字
ADDRESS関数で[数値]列1行目のセルのアドレスを取得し、SUBSTITUTE関数で行番号である"1"を削除する。

英字→数値
英字の末尾に"1"を付与し、COLUMN・INDIRECT関数で該当セルの列番号を取得する。

といった流れになります。
以上です。

この記事が気に入ったらサポートをしてみませんか?