https://x.com/excelspeedup/status/1859507636275904626
これ最初意味が分からなかったけど、そうか、列名にはゼロが無いんだ。
列名→列番号は、
ABC=1 * 26 ^ 2 + 2 * 26 ^ 1 + 3
みたいに計算できるから26進数ぽく見えるけど、列番号→列名は26進数として計算しようとすると、おかしくなる。
分からんからカンニングした。
要は、10進→26進変換の計算をするとき、26で割った余りが0のときは、商から1引いて、余りを26に変換する。これだけで良かった。言われてみれば。
惜しいところまでは行ってたのだが、沼にはまってしまった。精進が足りませんね。
このスレッドだとChatGPTと同じ解答があった。安心した(?)
https://stackoverflow.com/questions/181596/how-to-convert-a-column-number-e-g-127-into-an-excel-column-e-g-aa
しかしExcelの列名は結構面白いネタだな。そもそもこれ、bijective numerationという記法で、n進法とは全く違うものらしい。
https://en.wikipedia.org/wiki/Bijective_numeration
https://qiita.com/hibit/items/608b3ffe680be4b91a61
ちなみに、日本語でググったら、間違ったコードが出てきたw