
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.