
Я пытаюсь суммировать первые N элементов в столбце, где N — значение в другой ячейке. У меня получилось следующее:
=sum(B1:indirect(concatenate("B", A10)))
Где A10 содержит N. Но я не хочу жестко кодировать метку столбца в конкатенации, потому что я хочу, чтобы она продолжала работать, если я передвигаю столбцы. Я пробовал использовать функцию column()
, но она возвращает число, а не букву. Я пробовал
=char(code("A") + column() - 1)
но это не срабатывает, как только столбец достигает AA
, а я AK
уже на. Я мог бы поместить туда проверку по модулю 26, но я полагаю, что должен быть более простой способ получить код буквы столбца или сделать переменную сумму.
Я использую Apple Numbers, но формулы в Numbers, Excel, LibreOffice и т. д., похоже, довольно похожи, поэтому если у вас есть предложения, которые подойдут для других электронных таблиц, пожалуйста, не стесняйтесь.
решение1
Почему бы не использовать функцию OFFSET в сочетании с SUM? Закрепите смещение в первой строке столбца, который вы хотите просуммировать, затем используйте значение N, которое вы поместили в другую ячейку, чтобы задать высоту ссылки на диапазон, которую возвращает смещение.
Например, скажем, вы хотите суммировать столбец AK и указали количество строк, которые вы хотите суммировать, в ячейке AZ1. Формула для суммирования будет следующей:
=SUM(OFFSET(AK$1,1,0,AZ1,1))
Это формула массива, поэтому ее необходимо ввести с помощью CTRL-SHIFT-ENTER.