将列索引转换为相应的列字母

我需要将Google电子表格列索引转换为其相应的字母值,例如,给定一个电子表格:

enter image description here

我需要这样做(这个函数显然不存在,这是一个例子):

getColumnLetterByIndex(4);  // this should return "D"
getColumnLetterByIndex(1);  // this should return "A"
getColumnLetterByIndex(6);  // this should return "F"

现在,我不记得索引是从开始还是从开始,无论如何,这个概念应该是明确的。01

我没有在gas文档上找到任何关于此的内容。我是瞎子吗?有什么想法吗?

谢谢


答案 1

我不久前出于各种目的写了这些(将返回列号的双字母列名>26):

function columnToLetter(column)
{
  var temp, letter = '';
  while (column > 0)
  {
    temp = (column - 1) % 26;
    letter = String.fromCharCode(temp + 65) + letter;
    column = (column - temp - 1) / 26;
  }
  return letter;
}

function letterToColumn(letter)
{
  var column = 0, length = letter.length;
  for (var i = 0; i < length; i++)
  {
    column += (letter.charCodeAt(i) - 64) * Math.pow(26, length - i - 1);
  }
  return column;
}

答案 2

这很好用

=REGEXEXTRACT(ADDRESS(ROW(); COLUMN()); "[A-Z]+")

即使对于 Z 以外的列也是如此。

Demo of function

只需替换为您的列号即可。的值并不重要。COLUMN()ROW()