Fórmula do Excel: contar datas únicas -

Índice

Fórmula genérica

=COUNT(UNIQUE(date))

Resumo

Para contar datas exclusivas ("dias de negociação" no exemplo), você pode usar a função UNIQUE com a função COUNT ou uma fórmula baseada na função COUNTIF. No exemplo mostrado, a fórmula na célula G8 é:

=COUNT(UNIQUE(date))

em que data é o intervalo nomeado B5: B16.

Explicação

Tradicionalmente, contar itens exclusivos com uma fórmula do Excel tem sido um problema complicado, porque não há uma função exclusiva dedicada. No entanto, isso mudou quando os arrays dinâmicos foram adicionados ao Excel 365, junto com várias novas funções, incluindo UNIQUE.

Observação: em versões anteriores do Excel, você pode contar itens exclusivos com a função CONT.SE ou a função FREQUÊNCIA, conforme explicado abaixo.

No exemplo mostrado, cada linha da tabela representa uma negociação de ações. Em algumas datas, mais de uma negociação é realizada. O objetivo é contar dias de negociação - o número de datas exclusivas em que ocorreu algum tipo de negociação. A fórmula na célula G8 é:

=COUNT(UNIQUE(date))

Trabalhando de dentro para fora, a função UNIQUE é usada para extrair uma lista de datas exclusivas do intervalo nomeado "data":

UNIQUE(date) // extract unique values

O resultado é uma matriz com 5 números como este:

(44105;44109;44111;44113;44116)

Cada número representa uma data do Excel, sem formatação de data. As 5 datas são 1-out-20, 5-out-20, 7-out-20, 9-out-20 e 12-out-20.

Esta matriz é entregue diretamente à função COUNT:

=COUNT((44105;44109;44111;44113;44116)) // returns 5

que retorna uma contagem de valores numéricos, 5, como o resultado final.

Observação: a função COUNT conta valores numéricos, enquanto a função CONT.valores conta valores numéricos e de texto. Dependendo da situação, pode fazer sentido usar um ou outro. Nesse caso, como as datas são numéricas, usamos COUNT.

Com CONT.SE

Em uma versão mais antiga do Excel, você pode usar a função CONT.SE para contar datas exclusivas com uma fórmula como esta:

=SUMPRODUCT(1/COUNTIF(date,date))

Trabalhando de dentro para fora, COUNTIF retorna uma matriz com uma contagem para cada data na lista:

COUNTIF(date,date) // returns (2;2;3;3;3;2;2;2;2;3;3;3)

Neste ponto, temos:

=SUMPRODUCT(1/(2;2;3;3;3;2;2;2;2;3;3;3))

Depois que 1 é dividido por esta matriz, temos uma matriz de valores fracionários:

(0.5;0.5;0.333333333333333;0.333333333333333;0.333333333333333;0.5;0.5;0.5;0.5;0.333333333333333;0.333333333333333;0.333333333333333)

Este array é entregue diretamente à função SUMPRODUCT. SUMPRODUCT soma os itens na matriz e retorna o total, 5.

Com FREQÜÊNCIA

Se você estiver trabalhando com um grande conjunto de dados, poderá ter problemas de desempenho com a fórmula CONT.SE acima. Nesse caso, você pode alternar para uma fórmula de matriz com base na função FREQUENCY:

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

Observação: esta é uma fórmula de matriz e deve ser inserida com control + shift + enter, exceto no Excel 365.

Esta fórmula calculará mais rápido do que a versão CONT.SE acima, mas só funcionará com valores numéricos. Para mais detalhes veja este artigo.

Artigos interessantes...