エクセル(Excel)で任意のセルの列番号を取得する(702列/ZZ列まで対応)

=IF(
  COLUMN()<=26,"",
  CHAR(ROUNDDOWN(COLUMN()/26,0)+IF(MOD(COLUMN(),26)<>0,0,-1)+64)
 )
 &
 CHAR(IF(MOD(COLUMN(),26)<>0,MOD(COLUMN(),26),26)+64)

2文字までの列(A〜ZZ)までに対応。

5行目の & の前までが1文字目。
COLUMN()が26以下のときは、1文字目は空文字列””。
COLUMN()が26以上(AA以降)のときは、列数を26で割った商(MOD(COLUMN()/26))の整数部(ROUNDDOWN())。ただしZのときは商が1繰り上がるので、商から-1する。
そうするとアルファベットの何文字目か(A=1, B=2, C=3, … , Z=26)が得られるので、それをアルファベット文字にする。
文字コード(ASCII)にするのに64を足して、CHAR() している。

2文字目は、
COLUMN()を26で割った剰余を文字列に変換する。Zの場合は剰余が0なので、決め打ちで26。
得られた数字を文字コード(ASCII)に変換するのに64を足して、CHAR()。

Leave a Reply