У меня есть один столбец закодированных данных в Excel, вот такой:
a
b
ab
bc
ad
b
ac
Я знаю, что могу найти все ячейки, содержащие «a» с =COUNTIF(A1:A7,"*a*")
. Это даст мне 4. Я также могу посчитать «b», =COUNTIF(A1:A7,"*b*")
что даст 4.
Однако мне нужно подсчитать ячейки, которые содержат «a» ИЛИ «b», ноне учитывается дваждыячейки, содержащие оба. =COUNTIF(A1:A7,"*a*")+COUNTIF(A1:A7,"*b*")
= 8, но мне нужно условие ИЛИ, которое будет учитывать 7, не учитывая дважды «ab».
Если бы это было регулярное выражение, я мог бы сделать что-то вроде этого, =COUNTIF(A1:A7,"[ab]")
но я не могу...
ОБНОВЛЕНИЕ: Как отмечено вкомментарий, это упрощенный пример. У меня есть AM в наборе данных, и мне может потребоваться подсчитать комбинации из двух, трех или даже семи различных значений, поэтому мне нужно решение, которое может масштабироваться.
решение1
Это решение должно работать как масштабируемая реализация, которую можно легко расширить для других строк.
=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))>0))
Пример добавления еще одной строки:
=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))+ISNUMBER(FIND("c",A1:A7))>0))
Это работает путем запуска FIND
функции для каждой ячейки в диапазоне и использования ISNUMBER
для определения того, было ли найдено совпадение. Результаты суммируются для каждой ячейки, а затем в >0
конце указывается, что любая ячейка, которая совпала хотя бы с одним из FIND
s, должна быть учтена. SUMPRODUCT
Складывает все это, чтобы получить окончательный ответ.
Для поиска совпадений без учета регистра можно заменить функцию FIND
на SEARCH
.