У меня есть список чисел (8780 значений в одном столбце - образец размещен ниже), некоторые из них <> 0, а некоторые - 0.

Список номеров:
0
0
0
0
0,127227198
0
0
0,229366036
0,174893344
0
0,247079364
0
0,508165499
0,380252705
0,221018177
0,703514629
0
0,49853953
0,891621276
1,795142292
0
0
0
0
1,405576577
0,965799766
0,347987496
0,15944612
0,087348148
0
0

Для каждой соседней серии чисел, которые <> 0, я хочу суммировать значения этих ячеек и добавить сумму в отдельную ячейку в столбце B. Как я могу это сделать? Могу ли я использовать некоторую комбинацию функции if в столбце B?

Как вы можете видеть, числа <> 0 появляются случайным образом, поэтому я думаю, что нужна какая-то формула, которая проверяет, равна ли строка до или после = 0, а если строка после равна <> 0, то она должна начать суммировать числа выше.

Так, например, я хочу добавить сумму приведенных ниже чисел в одну ячейку.

1,405576577  
0,965799766  
0,347987496  
0,15944612  
0,087348148 

Я действительно ценю любую помощь, которую я могу получить! Надеюсь, это стало понятнее :)

1 ответ1

0

Для исходных данных в A1:A25 вы можете использовать следующее:

В B1 введите следующую формулу массива, вставив ее в строку формул и нажав Ctrl+Shift+Enter:

=SUMPRODUCT((MIN(IF($A1:$A$25=0,ROW($A1:$A$25),ROW($A$26)))>ROW($A1:$A$25))*($A1:$A$25))

Эта формула суммирует значения в A1 и ниже, которые находятся перед первым нулем.

В B2 введите аналогичную формулу массива с дополнительным условием (также используя Ctrl+Shift+Enter):

=IF(A1<>0,0,SUMPRODUCT((MIN(IF($A2:$A$25=0,ROW($A2:$A$25),ROW($A$26)))>ROW($A2:$A$25))*($A2:$A$25)))

Это условие для проверки ненулевой ячейки выше в столбце A - если она ненулевая, будет возвращено 0. В противном случае суммируйте значения, которые встречаются до следующего нуля.

Образец:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .