Условная сумма диапазона с пустыми ячейками в Calc - PullRequest
0 голосов
/ 04 января 2019

У меня есть следующие данные в электронной таблице:

----------------------
|Event |Value1|Value2|
|AAA   |1     |1     |
|BBB   |1     |3     |
|BBB   |      |2     |
|AAA   |3     |      |
----------------------

Я хочу вычислить сумму всех чисел в Value1 и Value2, поэтому у меня есть вывод:

--------------
|Type  |Total|
|AAA   |5    |
|BBB   |6    |
--------------

Для этого мне нужна формула в клетках под Total. Однако формулы, которые я пробовал, не работают, если существуют пустые ячейки. Если бы я поместил 0 в каждую пустую ячейку, я получил бы желаемый результат, но мой набор данных был бы намного больше, чем предоставленный пример, и наличие такого количества ячеек с 0 уменьшило бы читаемость.

Формула, которую я пробовал, показана ниже. Предположим, что Event - это A1, а Type - это A10.

=SUMIFS(B2:C5,A2:A5,A11)

Теперь, если бы каждая пустая ячейка содержала ноль, результат, показанный выше, был бы тем, что я увидел бы с этой формулой. Формула суммирует каждое значение в диапазоне B2: C5, если Event значения из A2: A5 соответствуют A11, который является строкой AAA, для вывода всего 5.

Итак, вопрос в том, как я могу игнорировать пустые ячейки, не вставляя в них 0? Я думал об использовании N() или ISBLANK(), но ни один из них не работает на диапазонах. Только отдельные ячейки.

1 Ответ

0 голосов
/ 05 января 2019

Непонятно, в какой Calc версии =SUMIFS(B2:C5,A2:A5,A11) будет работать вообще, даже если все значения в B2:C5 являются числовыми. Согласно определению, диапазон сумм и диапазоны критериев должны быть одинакового размера. Но здесь они не одного размера.

Но

enter image description here

Формула в B11:

=SUMPRODUCT(($A$2:$A$5=$A11)*ISNUMBER($B$2:$C$5),($B$2:$C$5))

должен работать, а также должен быть максимально совместим со всеми приложениями для работы с электронными таблицами.

Как это работает:

($A$2:$A$5=$A11) получает матрицу размером 1 столбец x 4 строки, равную {TRUE;FALSE;FALSE;TRUE} того, равно ли значение в $A$2:$A$5 $A11. Это умноженное на ISNUMBER($B$2:$C$5), которое представляет собой матрицу из 2 столбцов x 4 строки, равную {TRUE,TRUE;TRUE,TRUE;FALSE,TRUE;TRUE,FALSE} того, является ли значение в $B$2:$C$5 числовым, получает матрицу из 2 столбцов x 4 строки, равную {1,1;0,0;0,0;1,0} того, является ли значение в $A$2:$A$5 равно $A11 И значение в $B$2:$C$5 является числовым. Затем SUMPRODUCT составляет суммарное произведение этих обоих массивов {1,1;0,0;0,0;1,0} и $B$2:$C$5 = 1*B2 + 1*C2 + 0*B3 + 0*C3 + 0*B4 + 0*D4 + 1*B5 + 0*C5.

.
...