Eu tenho uma única coluna de dados codificados no Excel assim:
a
b
ab
bc
ad
b
ac
Eu sei que posso encontrar as instâncias de todas as células que contêm "a" com =COUNTIF(A1:A7,"*a*")
. Isso me daria 4. Também posso contar "b", =COUNTIF(A1:A7,"*b*")
que resulta em 4.
No entanto, o que preciso é contar células que contenham "a" OU "b", masnão conta duas vezescélulas contendo ambos. =COUNTIF(A1:A7,"*a*")+COUNTIF(A1:A7,"*b*")
= 8, mas quero uma condição OR que conte 7 sem contar duas vezes "ab".
Se fosse regex, eu poderia fazer algo parecido, =COUNTIF(A1:A7,"[ab]")
mas não posso...
ATUALIZAÇÃO: Conforme observado emum comentário, este é um exemplo simplificado. Tenho AM no conjunto de dados e posso precisar contar combinações de dois, três ou até sete valores diferentes, por isso preciso de uma solução que possa ser escalonada.
Responder1
Esta solução deve funcionar como uma implementação escalável que pode ser facilmente expandida para outras strings.
=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))>0))
Exemplo de adição de outra string:
=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))+ISNUMBER(FIND("c",A1:A7))>0))
Isso funciona executando a FIND
função em cada célula do intervalo e usando ISNUMBER
para determinar se uma correspondência foi encontrada. Os resultados são somados para cada célula e, em seguida, o >0
final especifica que qualquer célula que corresponda a pelo menos um dos FIND
s deve ser contada. O SUMPRODUCT
soma tudo para produzir uma resposta final.
Para uma correspondência que não diferencia maiúsculas de minúsculas, você pode substituir a FIND
função por SEARCH
.