Идея - использовать преобразования, аналогичные преобразованию чисел из десятичной системы счисления в, например, шестнадцатиричную и обратно. В таких системах счисления, где часть цифр, обозначающих значения, эквивалентные десятичной десятке и более - обозначаются буквами. Ну просто цифра должна быть единичным знаком.
Особенность преобразования числового формата номера столбца в буквенный для Excel в том, что нет "перехода через ноль". Если мы рассмотрим привычную нам десятичную систему счисления, то при переходе от одной десятки к следующей мы начинаем каждый раз с "нулевого" элемента этой десятки. 9 -> 10, 19 ->20, 99 -> 100 и так далее. А буквенный формат нумерации столбцов Excel ведёт себя несколько иначе - каждый новый "ряд" начинается с буквы "A" в "младшем разряде", обозначающей изначально единицу, а не ноль. И переход из ряда в ряд формируется по правилу: "<х>Z" -> "<следующий символ после x>A". Т.е. преобразования будут похожи на преобразования между различными системами счисления, где каждый разряд обозначает множитель основания системы счисления, возведённый в степень основания, в соответствии с номером разряда. Но только с учётом отсутствия этого "перехода через ноль".
Итак, сами функции приведены ниже. Применять можно в любом месте программного кода, смотря по обстоятельствам.
Как из числовой нумерации получить буквенную.
// Преобразует номер столбца в буквенный формат Excel
// Примеры: 1 -> "A", 26 -> "Z", 28 -> "AB", 53 -> "BA", 2081 -> "CBA" и т.д.
//
// Параметры:
// НомерСтолбца - Число -
//
// Возвращаемое значение:
// Строка -
//
Функция БуквыСтолбцаExcel(Знач НомерСтолбца)
СоответствиеБаза = Новый Соответствие;
СоответствиеБаза.Вставить(1, "A");
СоответствиеБаза.Вставить(2, "B");
СоответствиеБаза.Вставить(3, "C");
СоответствиеБаза.Вставить(4, "D");
СоответствиеБаза.Вставить(5, "E");
СоответствиеБаза.Вставить(6, "F");
СоответствиеБаза.Вставить(7, "G");
СоответствиеБаза.Вставить(8, "H");
СоответствиеБаза.Вставить(9, "I");
СоответствиеБаза.Вставить(10, "J");
СоответствиеБаза.Вставить(11, "K");
СоответствиеБаза.Вставить(12, "L");
СоответствиеБаза.Вставить(13, "M");
СоответствиеБаза.Вставить(14, "N");
СоответствиеБаза.Вставить(15, "O");
СоответствиеБаза.Вставить(16, "P");
СоответствиеБаза.Вставить(17, "Q");
СоответствиеБаза.Вставить(18, "R");
СоответствиеБаза.Вставить(19, "S");
СоответствиеБаза.Вставить(20, "T");
СоответствиеБаза.Вставить(21, "U");
СоответствиеБаза.Вставить(22, "V");
СоответствиеБаза.Вставить(23, "W");
СоответствиеБаза.Вставить(24, "X");
СоответствиеБаза.Вставить(25, "Y");
СоответствиеБаза.Вставить(26, "Z");
БуквыСтолбца = "";
КоличествоВАлфавите = СоответствиеБаза.Количество();
Пока НомерСтолбца > 0 Цикл
НомерБуквы = НомерСтолбца % КоличествоВАлфавите;
КодБуквы = ?(НомерБуквы = 0, КоличествоВАлфавите, НомерБуквы);
БуквыСтолбца = СтрШаблон("%1%2", СоответствиеБаза[КодБуквы], БуквыСтолбца);
НомерСтолбца = Цел(НомерСтолбца / КоличествоВАлфавите);
НомерСтолбца = НомерСтолбца - ?(НомерБуквы = 0, 1, 0);
КонецЦикла;
Возврат БуквыСтолбца;
КонецФункции // БуквыСтолбцаExcel()
Как из буквенной нумерации получить числовую.
// Преобразует буквы - обозначения столбца Excel к номеру в виде числа
// Примеры: "A" -> "1", "Z" -> "26", "AB" -> "28", "BA" -> "53", "CBA" -> "2081" и т.д.
//
// Параметры:
// БуквыСтолбца - Строка
//
// Возвращаемое значение:
// Строка - форматированный (без группировок разрядов) номер столбца
//
Функция НомерСтолбцаExcel(Знач БуквыСтолбца) Экспорт
СоответствиеБаза = Новый Соответствие;
СоответствиеБаза.Вставить("A", 1);
СоответствиеБаза.Вставить("B", 2);
СоответствиеБаза.Вставить("C", 3);
СоответствиеБаза.Вставить("D", 4);
СоответствиеБаза.Вставить("E", 5);
СоответствиеБаза.Вставить("F", 6);
СоответствиеБаза.Вставить("G", 7);
СоответствиеБаза.Вставить("H", 8);
СоответствиеБаза.Вставить("I", 9);
СоответствиеБаза.Вставить("J", 10);
СоответствиеБаза.Вставить("K", 11);
СоответствиеБаза.Вставить("L", 12);
СоответствиеБаза.Вставить("M", 13);
СоответствиеБаза.Вставить("N", 14);
СоответствиеБаза.Вставить("O", 15);
СоответствиеБаза.Вставить("P", 16);
СоответствиеБаза.Вставить("Q", 17);
СоответствиеБаза.Вставить("R", 18);
СоответствиеБаза.Вставить("S", 19);
СоответствиеБаза.Вставить("T", 20);
СоответствиеБаза.Вставить("U", 21);
СоответствиеБаза.Вставить("V", 22);
СоответствиеБаза.Вставить("W", 23);
СоответствиеБаза.Вставить("X", 24);
СоответствиеБаза.Вставить("Y", 25);
СоответствиеБаза.Вставить("Z", 26);
БуквыСтолбца = ВРег(СокрЛП(БуквыСтолбца));
НомерСтолбца = 0;
Для Сч = 1 По СтрДлина(БуквыСтолбца) Цикл
ТекБуква = Сред(БуквыСтолбца, СтрДлина(БуквыСтолбца) - Сч + 1, 1);
НомерСтолбца = НомерСтолбца + Pow(26, Сч-1) * СоответствиеБаза[ТекБуква];
КонецЦикла;
Возврат Формат(НомерСтолбца, "ЧГ=0");
КонецФункции // НомерСтолбцаExcel()