@ComPUCKter
Web-разработчик

Как сформировать координаты столбцов для любого порядкового номера в Google Sheets?

Я работаю с google sheets api. И в некоторых моментах бывает необходимо по переданному порядковому номеру столбца извлечь буквенные координаты (допустим, если это 26, то это буква Z и т.д.). С числами <= 26 всё очень просто, можно создать массив с алфавитом и вытаскивать по индексу. А если число больше, то у меня возникают сложности в составлении корректных координат (для 27 это AA и т.д.). Подскажите какой-нибудь алгоритм или предоставьте готовую функцию, которые справятся с любым числом. Я пишу на Php, если это важно. А так, думаю смогу разобрать алгоритм, если он будет написан и на другом языке (кроме ассемблера).
  • Вопрос задан
  • 383 просмотра
Пригласить эксперта
Ответы на вопрос 2
ProgrammerForever
@ProgrammerForever Куратор тега Google Sheets
Учитель, автоэлектрик, программист, музыкант
Вот так, например
//Имя столбца по его номеру
function col2A1(col){
  let result = "";
  let base = 27;
  while(col>0){    
    let newLetter = String.fromCharCode("A".charCodeAt(0)+(col-1)%(base-1));  
    result=newLetter + result;
    col = (col - col%base) / base;
  };
  return result;
};
// или короткая версия
function col2A1_(r){let o="";for(;0<r;){var t=String.fromCharCode("A".charCodeAt(0)+(r-1)%26);o=t+o,r=(r-r%27)/27}return o}
Ответ написан
Комментировать
ForestAndGarden
@ForestAndGarden
Совершенствовать среду обитания
A = 1, B = 2 ... Z = 26.

Номер столбца не может быть меньше 1 и больше 18278.

  1. 10000 : 26 = 384 и 16 в остатке, что соотв. P
  2. 384 ≥ 26 — ИСТИНА — продолжаем вычисления
  3. 384 : 26 = 14 и 20 в остатке, что соотв. T
  4. 14 ≥ 26 — ЛОЖЬ — 14 соотв. N

Адрес столбца: NTP

Картинка-подтверждение.

61bf8f82ae6d0344144546.jpeg
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы