Convert column number to Excel title

Albert Davletov
UniLecs
Published in
2 min readSep 3, 2021

Задача: Необходимо вернуть заголовок столбца в Excel по порядковому номеру N.

A -> 1

B -> 2

C -> 3

Z -> 26

AA -> 27

AB -> 28

Входные данные: N — целое число от 1 до 2³¹ — 1.

Вывод: заголовок столбца в Excel

Примеры:

  1. N = 1
    Output: “A”
  2. N = 28
    Output: “AB”
  3. N = 701
    Output: “ZY”

Разбор

Для простоты разберем на простом примере. Мы знаем, что номер столбца для столбца “ABZ” закодирован по следующей формуле:

N = A * 26² + B * 26¹ + Z * 26⁰
N = A * 26² + B * 26¹ + Z

Чтобы получить символ Z нам нужно взять остаток от деления на 26:
N % 26 = Z
Далее мы делим N на 26, тем самым мы двигаемся к следующему символу (B) и повторяем процесс. Таким образом мы получим все символы столбца под номером N.

В реализации стоит учесть, что в Excel нумерация столбцов идет от 1, в коде же нумерация смиволов A-Z будет начинаться с 0. Поэтому перед началом каждой итерации, мы уменьшаем текущий номер на 1.

Детали реализации смотрите ниже.

Реализация

C#

https://gist.github.com/unilecs/9816810892bda78415466dcb8b154a97

Play-test

https://dotnetfiddle.net/jYKn7A

--

--