Fórmula do Excel: contar valores numéricos exclusivos em um intervalo -

Índice

Fórmula genérica

=SUM(--(FREQUENCY(data,data)>0))

Resumo

Para contar valores numéricos exclusivos em um intervalo, você pode usar uma fórmula baseada nas funções FREQUENCY e SUM. No exemplo mostrado, os números dos funcionários aparecem no intervalo B5: B14. A fórmula em F5 é:

=SUM(--(FREQUENCY(B5:B14,B5:B14)>0))

que retorna 4, uma vez que existem 4 IDs de funcionário exclusivos na lista.

Explicação

Observação: antes do Excel 365, o Excel não tinha uma função dedicada para contar valores exclusivos. Esta fórmula mostra uma maneira de contar valores exclusivos, desde que sejam numéricos. Se você tiver valores de texto ou uma combinação de texto e números, precisará usar uma fórmula mais complicada.

A função FREQÜÊNCIA do Excel retorna uma distribuição de freqüência, que é uma tabela de resumo que mostra a freqüência dos valores numéricos, organizados em "bins". Nós o usamos aqui como uma forma indireta de contar valores numéricos únicos.

Trabalhando de dentro para fora, fornecemos o mesmo conjunto de números para a matriz de dados e a matriz de compartimentos para FREQUENCY:

FREQUENCY(B5:B14,B5:B14)

FREQUENCY retorna uma matriz com uma contagem de cada valor numérico no intervalo:

(4;0;0;0;2;0;1;3;0;0;0)

O resultado é um pouco enigmático, mas o significado é 905 aparece quatro vezes, 773 aparece duas vezes, 801 aparece uma vez e 963 aparece três vezes.

FREQÜÊNCIA tem um recurso especial que retorna automaticamente zero para quaisquer números que já tenham aparecido na matriz de dados, razão pela qual os valores são zero quando um número é encontrado.

Em seguida, cada um desses valores é testado para ser maior que zero:

(4;0;0;0;2;0;1;3;0;0;0)>0

O resultado é uma matriz como esta:

(TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE)

Cada TRUE representa um número único na lista. O SUM ignora os valores lógicos por padrão, então forçamos os valores TRUE e FALSE para 1s e 0s com um negativo duplo (-), que produz:

=SUM((1;0;0;0;1;0;1;1;0;0;0))

Finalmente, SUM soma esses valores e retorna o total, que neste caso é 4.

Nota: você também pode usar SUMPRODUCT para somar os itens na matriz.

Usando COUNTIF em vez de FREQUENCY para contar valores únicos

Outra maneira de contar valores numéricos exclusivos é usar CONT.SE em vez de FREQUÊNCIA. Esta é uma fórmula mais simples, mas tome cuidado, pois o uso de CONT.SE em conjuntos de dados maiores para contar valores exclusivos pode causar problemas de desempenho. A fórmula de FREQÜÊNCIA, embora mais complicada, calcula muito mais rápido.

Bons links

Livro de Mike Girvin, Control-Shift-Enter

Artigos interessantes...