https://x.com/excelspeedup/status/1859507636275904626
これ最初意味が分からなかったけど、そうか、列名にはゼロが無いんだ。
列名→列番号は、
ABC=1 * 26 ^ 2 + 2 * 26 ^ 1 + 3
みたいに計算できるから26進数ぽく見えるけど、列番号→列名は26進数として計算しようとすると、おかしくなる。
ちなみに、日本語でググったら、間違ったコードが出てきたw
このスレッドだと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
ChatGPTに聞いたら、もっとエレガントな解法を出してきた…。
前回の商を1引いてから割り算するだけ。
結果は0baseなので1baseにシフトすれば良い。
いや、確かにそれでいいよな。
今までChatGPTバカにしててごめんなさい。もう人間はおしまいです。