#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)