Excel: подсчитывать ячейку один раз в столбце, если она соответствует хотя бы одному из нескольких условий

Я работаю в Excel 2013. У меня был быстрый google для этого, но я думаю, что моя терминология может быть неправильной, поскольку я не нахожу ответа, который решает мою точную проблему.

У меня есть столбец объединенных результатов, связанных со здравоохранением, таких как:

"999 Emergency Ambulance By Co-op Admit Accident & Emergency! Admitted To Hospital"
"Advice Only"
"Admit to hospital"
"Medication prescribed"

Я хочу ввести одну формулу в одну ячейку, которая подсчитывает записи, которые ЛИБО содержат "999" "Допуск" ИЛИ "A&E" ИЛИ "Допуск" для ВСЕГО столбца.

Я не хочу, чтобы другой столбец выполнял этот подсчет, я знаю следующие работы:

=IF(ISNUMBER(SEARCH("999",K2)),1,IF(ISNUMBER(SEARCH("ADMIT",K2)),1,IF(ISNUMBER(SEARCH("ADMISSION",K2)),1,0)))

Но формула, которая мне понадобится, заменит сумму столбца, содержащего приведенную выше формулу, что сведет на нет необходимость в дополнительном столбце.

С чем я борюсь, так это с тем, что другие решения, которые я видел, будут проверять столбец для каждого условия, и в итоге вы получите ячейки, подсчитанные дважды. Как вы можете видеть выше, некоторые ячейки будут содержать «999» И «Допустить».

Извините, если это простой вопрос!

Заранее спасибо.


person jjswin    schedule 20.02.2014    source источник


Ответы (2)


Вы можете использовать эту формулу:

=SUMPRODUCT(1*((NOT(ISERROR(SEARCH("999";A1:A4)))+NOT(ISERROR(SEARCH("Admit";A1:A4)))+NOT(ISERROR(SEARCH("Admission";A1:A4))))>0))

Или, как в вашем примере, используйте Isnumber вместо NOT(ISERROR(

В зависимости от региональных настроек вам может потребоваться заменить разделитель полей ";" по ","

person CRondao    schedule 20.02.2014
comment
Благодарю вас! Пойду тестить :) - person jjswin; 20.02.2014
comment
Это сработало... спасибо! Мне просто нужно убедиться, что я понимаю, почему это работает. @CRondao - person jjswin; 20.02.2014

Вы можете использовать MMULT здесь, чтобы избежать повторения, т.е.

=SUMPRODUCT((MMULT(ISNUMBER(SEARCH({999,"Admit","A&E","Admission"},K2:K100))+0,{1;1;1;1})>0)+0)

Предполагается, что данные находятся в диапазоне K2:K100 — при необходимости измените

Обратите внимание, что в {1;1;1;1} есть 4 единицы, соответствующие 4 условиям поиска. Если вы увеличиваете количество условий поиска, вам необходимо увеличить количество единиц.

person barry houdini    schedule 20.02.2014
comment
О, умница. Я никогда раньше не слышал о MMULT! Спасибо. - person jjswin; 20.02.2014
comment
Ага, этот понравился :) - person CRondao; 20.02.2014