Отменить метод SUM(OFFSET(...))
и придерживаться с суммированием пары INDEX function, определяющей диапазон в 4-й строке. Если будет быстрее и является энергонезависимой функцией.
=SUM(INDEX('Operating Expense'!$4:$4,1,2+(ROW(1:1)-1)*12):INDEX('Operating Expense'!$4:$4,1,13+(ROW(1:1)-1)*12))
С, что в D28, вы можете заполнить вниз для B4: M4, N4: Y4 и т.д.
Как это работает:
В отличие от других функций поиска (например VLOOKUP function, HLOOKUP function , и т. д.) INDEX function может возвращать ссылку на адрес ячейки, которую можно использовать для непосредственного использования, не используя дополнительные служебные данные, например INDIRECT function. Если факт, вы можете сшить два из них вместе с двоеточием, чтобы создать диапазон пригодных для использования ячеек.
Синтаксис:
ИНДЕКС (< массив >, < номер_строки >, < номер_столбца >)
Пример: (все они составляют одно и то же)
=SUM(INDEX(A:A, 1, 1):INDEX(B:B, 5, 1))
=SUM(A1:INDEX(B:B, 5, 1))
=SUM(INDEX(A:A, 1, 1):B5)
=SUM(A1:B5)
Как только у нас есть контроль над строкой и столбцом диапазона ячеек (aka массив), мы можем манипулировать ими с небольшой математикой.
Если положить =ROW(1:1)
в любой клетке и заполнить вниз вы получите 1, 2, 3 и т.д.. Вот как мы выполняем пошатывание по мере заполнения.
Вы хотите первый набор 12 месяцев просуммировать B4: M4 поэтому первая часть использует 4: 4 для < массива >. Это представляет собой строку 4. <row_num> - , потому что есть только одна строка.
Вы хотите, чтобы начать диапазон суммы в столбце В, так что численно столбец 2. Мы не хотим, чтобы добавить что-нибудь в первый раз, но мы хотим, чтобы добавить как заполнить вниз, так что матч 2 + (ROW(1:1)-1) × 12
или 2+(ROW(1:1)-1)*12
для запуска < номер_столбца > 2, 14, 26 и т.д.
кроме того, вы хотите, чтобы закончить диапазон суммы в колонке М так, что численно столбец 13. Мы не хотим, чтобы добавить что-нибудь в первый раз, но мы хотим добавить , поскольку мы заполняем так, что матч 13 + (ROW(1:1)-1) × 12
или 13+(ROW(1:1)-1)*12
для окончания <column_num> из 13, 25, 37 и т. Д.
Результирующие диапазоны ячеек при заполнении будут следующими: B4: M4, N4: Y4, Z4: AK4 и т. Д. Заполнение их в SUM function даст вам соответствующих итогов.
Как уже упоминалось, это признак INDEX. VLOOKUP, HLOOKUP и т. Д. Возвращают значения, а не полезную ссылку на ячейку.
Вы говорите, что попробовали 'sum (offset())', но было бы неплохо увидеть вашу фактическую попытку кода, а не просто упоминать пару функций. Измените свой пост, чтобы показать код, который вы написали, описать, что произошло, описать, что вы ожидали, и что вы пытались исправить проблему. –