Excel - СУММ или СУММЕСЛИ всех столбцов двумерного массива, где строки фильтруются горизонтальной функцией

Я хочу СУММИТЬ несколько столбцов, но только для строк, СУММА которых > 0. Один из подходов, который работает, состоит в том, чтобы добавить дополнительный столбец, который, по сути, исключает строки, сумма которых равна <0, а затем просуммировать этот дополнительный столбец, как показано на снимке экрана ниже. Я хочу исключить вспомогательный столбец и создать единую формулу, основанную только на исходных данных, которая возвращает тот же результат. Я пытался включить FILTER() внутри SUMIF() и несколько других возможностей, но безрезультатно.

Примечание. Я использую O365 с поддержкой динамических массивов, если это поможет. Заранее спасибо.

Excel - СУММ или СУММЕСЛИ всех столбцов двумерного массива, где строки фильтруются горизонтальной функцией

Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
783
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Если я понимаю, что вы имеете в виду, использование функции MMult поможет преобразовать матрицу A2:C4 в E2:E4, как вы говорите.

-Вы можете использовать функцию ПОЗВОЛИТЬ, если у вас есть Office365-Insider,

=LET(x,A2:C4,y,MMULT(x*1,SEQUENCE(COLUMNS(x))^0),SUM(y*(y>0)))

-Или отсутствует LET:

=SUM(MMULT(A2:C4*1,SEQUENCE(COLUMNS(A2:C4))^0)*(MMULT(A2:C4*1,SEQUENCE(COLUMNS(A2:C4))^0)>0))

Причина, по которой я использую x*1, заключается в том, чтобы избежать возможных ошибок, если вы оставите ячейку пустой.

Ух ты! У меня нет программы Insider, но, судя по тому, что я только что прочитал о LET(), она мне пригодилась.

dfunky1 10.12.2020 10:16

@ dfunky1 вы можете попробовать LET с Excel Online, похоже, он доступен, за исключением лямбда-функции!

Dang D. Khanh 10.12.2020 10:33

Спасибо! Мне потребовалось немного времени, чтобы переварить это, но я думаю, что понял. Однако я внес небольшую модификацию, чтобы сделать его пригодным для повторного использования с новыми данными; в основном ссылаются на столбцы вместо массива. =SUM(MMULT(A:C*1,SEQUENCE(COLUMNS(A:C))^0)*MMULT(A:C*1,SEQUE‌​NCE(COLUMNS(A:C))^0)‌​>0))

dfunky1 10.12.2020 21:06

В G2 введите формулу:

=SUMPRODUCT((MMULT(A2:C4,{1;1;1})>0)*MMULT(A2:C4,{1;1;1}))

Другие вопросы по теме