Excel-formule: tel unieke datums -

Inhoudsopgave

Generieke formule

=COUNT(UNIQUE(date))

Samenvatting

Om unieke datums te tellen ("handelsdagen" in het voorbeeld) kunt u de UNIQUE-functie gebruiken met de COUNT-functie, of een formule gebaseerd op de AANTAL.ALS-functie. In het weergegeven voorbeeld is de formule in cel G8:

=COUNT(UNIQUE(date))

waarbij datum het benoemde bereik is B5: B16.

Uitleg

Traditioneel was het tellen van unieke items met een Excel-formule een lastig probleem, omdat er geen speciale unieke functie was. Dat veranderde echter toen dynamische arrays werden toegevoegd aan Excel 365, samen met verschillende nieuwe functies, waaronder UNIQUE.

Opmerking: in oudere versies van Excel kunt u unieke items tellen met de AANTAL.ALS-functie of de FREQUENTIE-functie, zoals hieronder wordt uitgelegd.

In het getoonde voorbeeld vertegenwoordigt elke rij in de tabel een aandelenhandel. Op sommige datums wordt meer dan één transactie uitgevoerd. Het doel is het tellen van handelsdagen - het aantal unieke datums waarop een soort transactie plaatsvond. De formule in cel G8 is:

=COUNT(UNIQUE(date))

Werkend van binnen naar buiten, wordt de UNIQUE-functie gebruikt om een ​​lijst met unieke datums te extraheren uit het benoemde bereik "date":

UNIQUE(date) // extract unique values

Het resultaat is een array met 5 getallen, zoals deze:

(44105;44109;44111;44113;44116)

Elk getal staat voor een Excel-datum, zonder datumnotatie. De 5 datums zijn 1-okt-20, 5-okt-20, 7-okt-20, 9-okt-20 en 12-okt-20.

Deze array wordt rechtstreeks aan de COUNT-functie geleverd:

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

die een aantal numerieke waarden retourneert, 5, als het eindresultaat.

Opmerking: de COUNT-functie telt numerieke waarden, terwijl de COUNTA-functie zowel numerieke als tekstwaarden telt. Afhankelijk van de situatie kan het zinvol zijn om de een of de ander te gebruiken. In dit geval gebruiken we COUNT omdat datums numeriek zijn.

Met AANTAL.ALS

In een oudere versie van Excel kunt u de AANTAL.ALS-functie gebruiken om unieke datums te tellen met een formule als deze:

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

AANTAL.ALS werkt van binnen naar buiten en retourneert een array met een telling voor elke datum in de lijst:

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

Op dit punt hebben we:

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

Nadat 1 is gedeeld door deze array, hebben we een array met fractionele waarden:

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

Deze array wordt rechtstreeks geleverd met de functie SOMPRODUCT. SOMPRODUCT telt vervolgens de items in de array op en retourneert het totaal, 5.

Met FREQUENCY

Als u met een grote set gegevens werkt, heeft u mogelijk prestatieproblemen met de AANTAL.ALS-formule hierboven. In dat geval kunt u overschakelen naar een matrixformule op basis van de functie FREQUENCY:

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

Opmerking: dit is een matrixformule en moet worden ingevoerd met control + shift + enter, behalve in Excel 365.

Deze formule wordt sneller berekend dan de AANTAL.ALS-versie hierboven, maar werkt alleen met numerieke waarden. Zie dit artikel voor meer informatie.

Interessante artikelen...