В Excel существует ли эффективный способ суммирования перекрывающихся именованных диапазонов?

#excel

#превосходить

Вопрос:

В Microsoft Excel у меня есть именованный (2D) диапазон. Для простоты предположим, что это выглядит так:

1 2 3 4 5 5 4 3 2 1

Это представляет собой кривую роста временных рядов, где N из них может начаться в любой момент времени. Я ищу эффективный способ рассчитать, какова будет их совокупная сумма в любой момент времени, учитывая, что N начинается в этот момент времени.

Так, например, если один начинается в момент 0, один-в момент 3, а два-в момент 7:

0 1 2 3 4 5 6 7 8 9
1 0 0 1 0 0 0 2 0 0

Тогда совокупная сумма будет равна:

0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 5 4 3 2 1
1 2 3 4 5 5 4
2 4 6
1 2 3 5 7 8 8 10 11 11

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

Ответ №1:

Используйте SUMPRODUCT и ИНДЕКС:

 =SUMPRODUCT(INDEX($M$1:$V$1,(COLUMN()-COLUMN($A$1:A1) 1)),$A$2:A2)  

Диапазоны динамичны и увеличиваются по мере его остановки.

введите описание изображения здесь

с версиями, которые не являются Office 365, нам нужно обмануть ИНДЕКС, чтобы он принял массив:

 =SUMPRODUCT(INDEX($M$1:$V$1,N(IF({1},(COLUMN()-COLUMN($A$1:A1) 1)))),$A$2:A2)  

Затем это будет подтверждено с помощью Ctrl-Shift-Enter, чтобы сделать его формулой массива.

введите описание изображения здесь