Fórmula do Excel: conte as células que contêm x ou y -

Fórmula genérica

=SUMPRODUCT(--((ISNUMBER(FIND("abc",rng)) + ISNUMBER(FIND("def",rng)))>0))

Resumo

Para contar células que contêm x ou y, você pode usar uma fórmula baseada na função SUMPRODUCT. No exemplo mostrado, a fórmula na célula F5 é:

=SUMPRODUCT(--((ISNUMBER(FIND("abc",B5:B11))+ISNUMBER(FIND("def",B5:B11)))>0))

Esta é a solução de fórmula de célula única, explicada abaixo. Também é possível usar uma fórmula mais simples baseada em uma coluna auxiliar, também explicada a seguir.

Explicação

Ao contar células com "lógica OR", você precisa ter cuidado para não contar duas vezes. Por exemplo, se você está contando células que contêm "abc" ou "def", não pode simplesmente adicionar duas funções CONT.SE, porque você pode contar duas vezes as células que contêm "abc" e "def".

Solução de célula única

Para uma única fórmula, você pode usar SUMPRODUCT com ISNUMBER + FIND. A fórmula em F5 é:

=SUMPRODUCT(--((ISNUMBER(FIND("abc",B5:B11)) + ISNUMBER(FIND("def",B5:B11)))>0))

Esta fórmula é baseada na fórmula explicada aqui que localiza o texto dentro de uma célula:

ISNUMBER(FIND("abc",B5:B11)

Quando dado um intervalo de células, este snippet retornará uma matriz de valores VERDADEIRO / FALSO, um valor para cada célula do intervalo. Como estamos usando isso duas vezes (uma para "abc" e outra para "def"), obteremos dois arrays.

Em seguida, adicionamos essas matrizes (com +), o que cria uma nova matriz única de números. Cada número neste array é o resultado da adição de valores TRUE e FALSE nos dois arrays originais juntos. No exemplo mostrado, a matriz resultante se parece com isto:

(2;0;2;0;1;0;2)

Precisamos somar esses números, mas não queremos contar duas vezes. Portanto, precisamos garantir que qualquer valor maior que zero seja contado apenas uma vez. Para fazer isso, forçamos todos os valores para TRUE ou FALSE com "> 0" e, em seguida, forçamos para 1/0 com o duplo negativo (-).

Por fim, SUMPRODUCT retorna a soma de todos os valores da matriz.

Solução de coluna auxiliar

Com uma coluna auxiliar para verificar cada célula individualmente, o problema é menos complexo. Podemos usar CONT.SE com dois valores (fornecidos como uma "constante de matriz"). A fórmula em C5 é:

=--(SUM(COUNTIF(B5,("*abc*","*def*")))>0)

COUNTIF retornará uma matriz que contém dois itens: uma contagem para "abc" e uma contagem para "def". Para evitar a contagem dupla, adicionamos os itens e, em seguida, forçamos o resultado a TRUE / FALSE com "> 0". Finalmente, convertemos os valores VERDADEIRO / FALSO em 1 e 0 com um negativo duplo (-).

O resultado final é 1 ou 0 para cada célula. Para obter um total de todas as células do intervalo, basta somar a coluna auxiliar.

Artigos interessantes...