Conte as células únicas que correspondem aos resultados no conjunto

0

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 contendo "a" com =COUNTIF(A1:A7,"*a*") . Isso me daria 4. Eu também posso contar "b" =COUNTIF(A1:A7,"*b*") , o que resulta em 4.

No entanto, o que preciso é contar as células que contêm "a" OR "b", mas não conta duas vezes as células que contêm ambas. =COUNTIF(A1:A7,"*a*")+COUNTIF(A1:A7,"*b*") = 8, mas eu quero uma condição OR que contaria 7 por não contar duas vezes "ab".

Se isso fosse regex, eu poderia fazer algo como =COUNTIF(A1:A7,"[ab]") , mas não posso ...

ATUALIZAÇÃO: conforme observado em comentário , este é um exemplo simplificado. Eu tenho A-M no conjunto de dados e pode precisar contar combinações de dois, três ou até sete valores diferentes, então eu preciso de uma solução que possa escalar.

    
por mrwweb 22.07.2014 / 01:41

1 resposta

0

Esta solução deve funcionar como uma implementação escaloná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 função FIND em cada célula no intervalo e usando ISNUMBER para determinar se uma correspondência foi encontrada. Os resultados são adicionados para cada célula e, em seguida, o >0 no final especifica que qualquer célula que corresponda a pelo menos um dos FIND s deve ser contada. O SUMPRODUCT adiciona tudo para produzir uma resposta final.

Para uma correspondência sem distinção entre maiúsculas e minúsculas, você pode substituir a função FIND por SEARCH .

    
por 22.07.2014 / 01:44