Как проще всего преобразовать номер столбца Excel в букву столбца? #784696


#0 by wormselfish
Столбцы в таблице нумеруются буквыми так: A, B, C, ... Y, Z, AA, AB, AC, ... и т.д. Задача оптимальным способом по номеру столбца получить его букву. Например: 0 => A 25 => Z 99 => ? На любом языке программирования.
#1 by разработчик 1с
целое от деления на 25, потом остаток от деления через кейс определить буквы
#2 by Мойдодыр
Это называется перевод в другую систему счисления
#3 by wormselfish
:) Ну. Кто первый догадается?
#4 by Живой Ископаемый
а.. то есть тут призы?
#5 by МихаилМ
системы счисления на информатике в школе проходят. Вам на подростковый форум.
#6 by Torquader
Система счисления с переменной базой - младший разряд 26, а остальные - 27.
#7 by romix
В цикле заполнить соответствие...
#8 by Garykom
ТС просто скосячил, в екселе нумерация с 1 а не с 0, так что никакой переменной базы
#9 by Serginio1
Можно получить индекс зная смещение символа 64 относительно 1 и 26 разрядную систему
#10 by Serginio1
Или можно заполнить колонки Функция ЗаписатьКолонки(Колонки,НачСтр,Разряд,КоличествоРазрядов,Сравнивать,ПоследняяКолонка) // Процедура создает колонки которые меньше или равны имени последней колоки // A,B,..,AA..ABC     Для сч=КодСимвола("A") по  КодСимвола("Z") Цикл         НовСтр=НачСтр+Символ(сч);                  Если  Разряд<КоличествоРазрядов Тогда             рез= ЗаписатьКолонки(Колонки,НовСтр,Разряд+1,КоличествоРазрядов,Сравнивать,ПоследняяКолонка);             Если Сравнивать и Рез Тогда                 возврат истина             КонецЕсли;             Иначе             Колонки.Добавить(НовСтр,ОписаниеСтроки);                          Если Сравнивать и НовСтр=ПоследняяКолонка Тогда                 возврат  истина             КонецЕсли         КонецЕсли;     КонецЦикла;               возврат ложь; КонецФункции Процедура СоздатьКолонки(Колонки,ПоследняяКолонка)          // Создадим колонки учитывая разряды     // Например если имя последней колоки ABC то колонки идут по разрядно     //A..Z     //AA..ZZ     //AAA..ABC     КоличествоРазрядов=СтрДлина(ПоследняяКолонка);          Для сч=1 По  КоличествоРазрядов Цикл         Сравнивать=сч=КоличествоРазрядов;         рез= ЗаписатьКолонки(Колонки,"",1,сч,Сравнивать,ПоследняяКолонка);         Если Сравнивать и рез Тогда             возврат;         КонецЕсли;         КонецЦикла;     КонецПроцедуры
#11 by wormselfish
Пока правильного ответа нет. Если не считать , так как он громоздкий.
#12 by Yuri 83
лТЗн.Колонки.Получить(Индекс).Имя?
#13 by Serginio1
private string GetExcelColumnName(int columnNumber) {     int dividend = columnNumber;     string columnName = String.Empty;     int modulo;     while (dividend > 0)     {         modulo = (dividend - 1) % 26;         columnName = Convert.ToChar(65 + modulo).ToString + columnName;         dividend = (int)((dividend - modulo) / 26);     }     return columnName; }
#14 by wormselfish
Нагуглил. И все равно громоздко, хотя и правильно. Но у меня короче получилось
#15 by Adilgeriy
А переключит нумерацию столбов в экселе почему не хочешь?
#16 by Garykom
Зная что есть ограничение на кол-во столбцов в екселе можно в одну строчку записать, но науя?
#17 by Рэйв
А зачем? есксель и цифры прекрасно понимает.Да они  наглядне
#18 by Feunoir
Ограничение столбцов в последних версиях Excel - 16384. Точно одной строкой получится?
#19 by Garykom
угу всего то максимум 3 буковки
#20 by NikVars
СТОЛБЕЦ См. также Возвращает номер столбца по заданной ссылке. Синтаксис СТОЛБЕЦ(ссылка) Ссылка   — это ячейка или интервал ячеек, для которых определяется номер столбца. Если ссылка опущена, то предполагается, что это ссылка на ячейку, в которой находится сама функция СТОЛБЕЦ. Если ссылка является интервалом ячеек, и если функция СТОЛБЕЦ введена как горизонтальный массив, то функция СТОЛБЕЦ возвращает номера столбцов в ссылке в виде горизонтального массива. Ссылка не может ссылаться на несколько областей. Пример Чтобы этот пример проще было понять, скопируйте его на пустой лист. Показать Инструкции Создайте пустую книгу или лист. Выделите пример в разделе справки. Не выделяйте заголовок строки или столбца. Выделение примера в справке. Выделение примера в справке. Нажмите сочетание клавиш CTRL+C На листе выделите ячейку A1 и нажмите сочетание клавиш CTRL+V. Чтобы переключиться между просмотром результатов и просмотром формул, возвращающих эти результаты, нажмите сочетание клавиш CTRL+` (апостроф) или в меню Сервис укажите на пункт Зависимости формул и выберите режим Режим проверки формул.    1 2 3 A B Формула Описание (результат) =СТОЛБЕЦ Столбец в котором отображается формула =СТОЛБЕЦ(A10) Столбец ссылки
#21 by wormselfish
Чувак! Ну все молодцы. Кроме некоторых. Темку можно закрыть ;)
#22 by Злопчинский
фигня какая. давайте-ка решим здачу красиво БЕЗ ЭКСЕЛЯ
#23 by Garykom
"Мариуполь, Европа"
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С