
У меня есть список чисел (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
Для исходных данных в формате 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. В противном случае суммируются значения, которые встречаются до следующего нуля.
Образец: