Как получить букву последнего столбца в gsheet или Excel, используя их fomula

#excel #google-apps-script #google-sheets #excel-formula #google-sheets-formula

#excel #google-apps-script #google-sheets #excel-формула #google-sheets-формула

Вопрос:

Я изо всех сил пытаюсь получить букву последнего столбца gsheet или Excel, используя их формулу. У меня есть лист, в который я буду добавлять новый столбец каждый раз, когда я работаю над ним, и мне нужна буква последнего столбца, чтобы поместить ее в другую мою формулу.

Я хочу использовать его для формулы, подобной сумме, подобной

 =sum(j4:lastcolumn)
  

Комментарии:

1. =LEFT(ADDRESS(1,COLUMNS(1:1),4),LEN(ADDRESS(1,COLUMNS(1:1),4))-1) Этот?

2. @ENIAC, спасибо, но могу ли я использовать его для формулы типа sum? like =sum(j4:LEFT(АДРЕС(1, СТОЛБЦЫ (1: 1), 4),LEN(АДРЕС(1, СТОЛБЦЫ(1:1),4))-1))

3. Вы спрашивали о букве последнего столбца. Как вы хотите суммировать букву столбца и значение ячейки?

Ответ №1:

Предполагая непрерывный диапазон, вы бы использовали INDEX/COUNTA :

  • COUNTA чтобы получить количество столбцов
  • INDEX чтобы получить диапазон

Затем вы можете использовать его в формуле, подобной этой:

 =SUM(A4:INDEX(4:4,COUNTA(4:4)))
  

Если последний столбец K , это равно SUM(A4:K4)

Комментарии:

1. Будет ли это работать с пустыми столбцами между ними? Но я все равно голосую, поскольку это полный ответ на вопрос.

2. @Marios Нет. Поэтому мое условие в самой первой строке ответа: «непрерывный диапазон». Однако, если пробелы постоянны (скажем, 2 пробела всегда), вы можете просто добавить в count: =SUM(A4:INDEX(4:4,COUNTA(4:4) 2))

Ответ №2:

Решение:

Вы можете создать свою собственную пользовательскую формулу для решения этой задачи с помощью Google Apps Script. Следующий скрипт получит последний столбец с содержимым, используя метод getLastColumn(), а затем регулярное выражение для сопоставления индекса последнего столбца с соответствующей буквой столбца.

 function findLastColumn() {
  const sh = SpreadsheetApp.getActive().getActiveSheet();
  const lastC = sh.getLastColumn();
  var range = sh.getRange(1, lastC, 1, 1);
  return range.getA1Notation().match(/([A-Z] )/)[0];
}
  

Вышеупомянутый фрагмент кода предоставит вам букву последнего столбца с содержимым.

Если вы хотите, чтобы в вашем листе было максимальное количество столбцов, замените:

 sh.getLastColumn();
  

с помощью

 sh.getMaxColumns();
  

Ответ №3:

Нет необходимости в букве. Нет необходимости в VBA

Чтобы создать диапазон для суммирования:

  • Сначала получите номер столбца последнего столбца в строке, содержащей число (не имеет значения, есть ли пустые столбцы между ними):

       =LOOKUP(2,1/ISNUMBER(4:4),COLUMN(4:4))
      
  • Затем объедините его с функцией INDEX, чтобы получить соответствующий диапазон:

       =J4:INDEX(4:4,1,LOOKUP(2,1/ISNUMBER(4:4),COLUMN(4:4)))
      

Итак, ваша конечная формула будет:

 =SUM(J4:INDEX(4:4,1,LOOKUP(2,1/ISNUMBER(4:4),COLUMN(4:4))))
  

Конечно, по крайней мере, для этой простой формулы, тот же результат будет получен с:

 =sum(j4:xfd4)