• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Datums tellen in een reeks

Status
Niet open voor verdere reacties.

BenH

Nieuwe gebruiker
Lid geworden
24 jul 2007
Berichten
4
Hallo,

In een reeks (Excel 2007) met datums wil ik het aantal dagen tellen in bijv. de maand mei.
Deze formule geeft een foutmelding: =AANTAL.ALS(MAAND(A20:A50);5).
Deze formule werkt wel maar is wat omslachtig: =SOMPRODUCT((MAAND(A20:A30)=5)*1)
Weet iemand wat hiervoor de correcte formule is?

Alvast bedankt!
 
De "correcte" formule is de tweede. Of met een matrixformule, maar onder water is dat exact hetzelfde.
 
Bedankt voor de snelle reactie.

Ik vind het wat 'troebel' om in het somproduct alle waarden met 1 te vermenigvuldigen.
Daarom vroeg ik mij af of het niet met een 'heldere' formule kan.
 
Dat is eigenlijk een legacy probleem. Booleans hebben in de meeste talen een 0/1 waarde uit zichzelf. VBA doet geen automatische conversie naar double bij gebruik in formules.

zet maar eens in een excel sheet dit:

TRUE
TRUE
FALSE

doe dan een SOM over deze waarden. de uitkomst hiervan is "0" niet "2" als je misschien zou verwachten. als je SOM.ALS(bovenstaande reeks;true) uitvoert is het antwoord ook "0".
 
Dat dit: =AANTAL.ALS(MAAND(A20:A50);5) een foutmelding geeft is logisch, aantal.als vereist een bereik.
Je zou dit kunnen gebruiken (in te voeren via ctrl-shift-enter):
Code:
=aantal(als(maand(a20:a50)=5;a20:a50))
 
Zonder vermenigvuldiging
Code:
=SOMPRODUCT(--(MAAND(A2:A11)=5))
 
Of de "--" vervangen door de N functie.
Code:
=SOMPRODUCT(N(MAAND(A1:A11)=5))
 
Grappig.
=SOMPRODUCT(--(MAAND(A2:A11)=5)) geeft het juiste resultaat.
=SOMPRODUCT(-(MAAND(A2:A11)=5)) met één minteken geeft het resultaat met een minteken.
=SOMPRODUCT((MAAND(A2:A11)=5)) zonder mintekens geeft 0 als resultaat.
Dan vind ik deze formule =SOMPRODUCT(N(MAAND(A1:A11)=5)) het meest elegant.

Allemaal bedankt voor jullie hulp.
 
BenH,
wilde je beslist een oplossing met somproduct?
 
Nee hoor, een andere formule is ook goed. Weet je er nog een?

Ik heb een kolom (A) met ca. 100 datums. Het aantal datums per maand varieert van 0 tot 18.
In kolom B staat het bedrag bij elke datum.
Ik wil bijv. het aantal datums per maand, het totaalbedrag per maand en nog een aantal andere dingen die hiervan kunnen worden afgeleid weten

In cel D1 : D12 staan de getallen (maandnummers) 1 t/m 12.
(sorry voor de spaties bij D1 : D12 maar als ik die weglaat maakt de tekst-editor er een emoticon van :D)

In kolom E het aantal datums per maand dus in E1:
=SOMPRODUCT(N(MAAND(A$1:A$100)=D1))

In kolom F de totalen per maand dus in F1:
=SOMPRODUCT((MAAND($A$1:$A$100)=D1)*($B$1:$B$100))

Ik loop tegen nog een probleem aan.
Kolom A is nog niet helemaal compleet, sommige cellen zijn nog leeg.
Als bijv. A73 leeg is, geeft de =MAAND(A73) het resultaat 1. Hierdoor wordt deze cel bij januari (maandnummer 1) ingedeeld wat niet de bedoeling is.

Weet iemand hier een oplossing voor?
 
Laatst bewerkt:
BenH schreef:
"Nee hoor, een andere formule is ook goed. Weet je er nog een?"
Antwoord: Ja, die vermeldde ik in bericht #5.

BenH schreef:
Ik heb een kolom (A) met ca. 100 datums. Het aantal datums per maand varieert van 0 tot 18. In kolom B staat het bedrag bij elke datum. Ik wil bijv. het aantal datums per maand, het totaalbedrag per maand en nog een aantal andere dingen die hiervan kunnen worden afgeleid weten. In cel D1 : D12 staan de getallen (maandnummers) 1 t/m 12.
In kolom E het aantal datums per maand dus in E1: =SOMPRODUCT(N(MAAND(A$1:A$100)=D1)).
In kolom F de totalen per maand dus in F1: =SOMPRODUCT((MAAND($A$1:$A$100)=D1)*($B$1:$B$100))


Antwoord: Dat is juist. Andere (maar niet noodzakelijk betere) oplossingen zijn:
Code:
=aantal(als(maand(a1:a100)=d1;a1:a100))
en 
=som(als(maand(a1:a100)=d1;b1:b100))

Beide formules invoeren via ctrl-shift-enter!
BenH schreef:
Kolom A is nog niet helemaal compleet, sommige cellen zijn nog leeg. Als bijv. A73 leeg is, geeft de =MAAND(A73) het resultaat 1. Hierdoor wordt deze cel bij januari (maandnummer 1) ingedeeld wat niet de bedoeling is. Weet iemand hier een oplossing voor?
Antwoord: Je zou dit kunnen gebruiken:
Code:
=als(a73="";"";maand(a73))
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan