Formula Excel: conta date uniche -

Sommario

Formula generica

=COUNT(UNIQUE(date))

Sommario

Per contare date uniche ("giorni di negoziazione" nell'esempio) è possibile utilizzare la funzione UNIQUE con la funzione COUNT, oppure una formula basata sulla funzione COUNTIF. Nell'esempio mostrato, la formula nella cella G8 è:

=COUNT(UNIQUE(date))

dove date è l'intervallo denominato B5: B16.

Spiegazione

Tradizionalmente, il conteggio di elementi unici con una formula Excel è stato un problema complicato, perché non esisteva una funzione unica dedicata. Tuttavia, ciò è cambiato quando gli array dinamici sono stati aggiunti a Excel 365, insieme a diverse nuove funzioni, tra cui UNIQUE.

Nota: nelle versioni precedenti di Excel, è possibile contare elementi univoci con la funzione CONTA.SE o la funzione FREQUENZA, come spiegato di seguito.

Nell'esempio mostrato, ogni riga della tabella rappresenta uno scambio di azioni. In alcune date, viene eseguita più di una transazione. L'obiettivo è contare i giorni di negoziazione, il numero di date uniche in cui si è verificato un qualche tipo di scambio. La formula nella cella G8 è:

=COUNT(UNIQUE(date))

Lavorando dall'interno verso l'esterno, la funzione UNIQUE viene utilizzata per estrarre un elenco di date univoche dall'intervallo denominato "date":

UNIQUE(date) // extract unique values

Il risultato è un array con 5 numeri come questo:

(44105;44109;44111;44113;44116)

Ogni numero rappresenta una data di Excel, senza formattazione della data. Le 5 date sono 1-ottobre-20, 5-ottobre-20, 7-ottobre-20, 9-ottobre-20 e 12-ottobre-20.

Questo array viene consegnato direttamente alla funzione COUNT:

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

che restituisce un conteggio di valori numerici, 5, come risultato finale.

Nota: la funzione COUNT conta i valori numerici, mentre la funzione COUNTA conterà sia i valori numerici che di testo. A seconda della situazione, può avere senso usare l'uno o l'altro. In questo caso, poiché le date sono numeriche, utilizziamo COUNT.

Con COUNTIF

In una versione precedente di Excel, puoi utilizzare la funzione CONTA.SE per contare date uniche con una formula come questa:

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

Lavorando dall'interno verso l'esterno, CONTA.SE restituisce un array con un conteggio per ogni data nell'elenco:

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

A questo punto abbiamo:

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

Dopo che 1 è stato diviso per questo array, abbiamo un array di valori frazionari:

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

Questo array viene fornito direttamente dalla funzione SUMPRODUCT. SUMPRODUCT quindi somma gli elementi nell'array e restituisce il totale, 5.

Con FREQUENZA

Se stai lavorando con una grande serie di dati, potresti avere problemi di prestazioni con la formula CONTA.SE sopra. In tal caso, puoi passare a una formula di matrice basata sulla funzione FREQUENZA:

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

Nota: questa è una formula di matrice e deve essere inserita con CTRL + MAIUSC + INVIO, tranne che in Excel 365.

Questa formula calcolerà più velocemente della versione CONTA.SE sopra, ma funzionerà solo con valori numerici. Per ulteriori dettagli guarda questo articolo.

Articoli interessanti...