Excel-formel: Räkna unika datum -

Innehållsförteckning

Generisk formel

=COUNT(UNIQUE(date))

Sammanfattning

För att räkna unika datum ("handelsdagar" i exemplet) kan du använda UNIQUE-funktionen med COUNT-funktionen eller en formel baserad på COUNTIF-funktionen. I exemplet som visas är formeln i cell G8:

=COUNT(UNIQUE(date))

där datum är det namngivna intervallet B5: B16.

Förklaring

Traditionellt har det varit ett knepigt problem att räkna unika objekt med en Excel-formel, eftersom det inte har funnits en dedikerad unik funktion. Men det förändrades när dynamiska matriser lades till i Excel 365, tillsammans med flera nya funktioner, inklusive UNIK.

Obs! I äldre versioner av Excel kan du räkna unika objekt med COUNTIF-funktionen eller FREQUENCY-funktionen, som förklaras nedan.

I exemplet som visas representerar varje rad i tabellen en aktiehandel. En några datum, mer än en handel utförs. Målet är att räkna handelsdagar - antalet unika datum då någon form av handel inträffade. Formeln i cell G8 är:

=COUNT(UNIQUE(date))

UNIQUE-funktionen arbetar inifrån och ut och används för att extrahera en lista med unika datum från det angivna intervallet "datum":

UNIQUE(date) // extract unique values

Resultatet är en matris med fem nummer så här:

(44105;44109;44111;44113;44116)

Varje nummer representerar ett Excel-datum utan datumformatering. De 5 datumen är 1-okt-20, 5-okt-20, 7-oktober-20, 9-oktober-20 och 12-oktober-20.

Denna matris levereras direkt till COUNT-funktionen:

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

som returnerar ett antal numeriska värden, 5, som slutresultat.

Obs! COUNT-funktionen räknar numeriska värden, medan COUNTA-funktionen räknar både numeriska värden och textvärden. Beroende på situationen kan det vara vettigt att använda det ena eller det andra. I det här fallet använder vi COUNT eftersom datum är numeriska.

Med COUNTIF

I en äldre version av Excel kan du använda COUNTIF-funktionen för att räkna unika datum med en sådan formel:

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

Arbetar inifrån och ut, COUNTIF returnerar en matris med ett antal för varje datum i listan:

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

Vid denna tidpunkt har vi:

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

Efter att 1 har delats med denna array har vi en array med bråkvärden:

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

Denna matris levereras direkt med SUMPRODUCT-funktionen. SUMPRODUCT summerar sedan objekten i matrisen och returnerar summan 5.

Med FREKVENS

Om du arbetar med en stor mängd data kan du ha prestandaproblem med COUNTIF-formeln ovan. I så fall kan du växla till en matrisformel baserad på FREKVENS-funktionen:

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

Obs: Detta är en matrisformel och måste anges med kontroll + shift + enter, utom i Excel 365.

Denna formel beräknas snabbare än COUNTIF-versionen ovan, men den fungerar bara med numeriska värden. Mer information finns i den här artikeln.

Intressanta artiklar...