3
          COL A     COL B     COL C
ROW 1     Yes                 Yes
ROW 2     Yes
ROW 3
ROW 4               Yes       Yes

Я пытаюсь написать формулу, которая будет подсчитывать, сколько строк содержит хотя бы один столбец со значением "Да". Я попытался использовать COUNTIFS() со всеми тремя столбцами, но это работает, только если все три столбца говорят "Да". Я хочу посчитать строку независимо от того, сколько в ней значений "Да", если есть хотя бы одно.

Я мог бы добиться этого легче, если бы добавил четвертый столбец, в котором использовались операторы IF для поиска значений YES, а затем посчитал столбец THAT. Тем не менее, я ищу решение для одной клетки здесь.

2 ответа2

2

Вам нужно будет сделать это с помощью следующей формулы массива.

=SUM(--((A1:A4="Yes")+(B1:B4="Yes")+(C1:C4="Yes")>0))

Чтобы указать, что это формула массива, после ввода формулы в Excel нажмите Ctrl+Shift+Enter вместо Enter.

Произошло следующее:A1:A4 будет расширен в массив для оценки, A1:A4="Yes" будет расширен до {"Yes", "Yes", "", ""} = "Yes" , которое в свою очередь становится {TRUE, TRUE, FALSE, FALSE} . Excel обрабатывает TRUE как 1 и FALSE как 0 внутри.

Поэтому (A1:A4="Yes")+(B1:B4="Yes")+(C1:C4="Yes") оценивается как {2, 1, 0, 2} . Затем {2, 1, 0, 2} сравнивается с >0 , что дает {TRUE, TRUE, FALSE, TRUE} . Чтобы изменить значение True на 1 и False на 0 для добавления, я добавил оператор --(который буквально дважды отрицателен) для создания массива {1, 1, 0, 1} . Суммирование {1, 1, 0, 1} дает 3.

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

2

Если ваши три столбца смежны, то вы можете использовать эту формулу

=SUMPRODUCT(0+(MMULT(0+(A1:C4="Yes"),{1;1;1})>0))

Вам нужно изменить часть {1;1;1} чтобы число 1 совпадало с количеством столбцов.

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