У меня есть один столбец закодированных данных в 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 ответ1

0

Это решение должно работать как масштабируемая реализация, которую можно легко расширить для других строк.

=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 должна быть подсчитана. SUMPRODUCT складывает все это, чтобы получить окончательный ответ.

Для матча регистронезависимого, вы можете заменить функцию FIND с SEARCH

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