Weekdagen in een maand

Ooit afgevraagd hoeveel van een bepaalde weekdag voordoen binnen een bepaalde maand? Voor sommige mensen, is het belangrijk te weten hoeveel dinsdag er een maand. En wie niet wil weten of een bepaalde maand zal hebben vier of vijf zaterdagen?

Excel bevat geen intrinsieke functie die u kunt gebruiken om het aantal keren dat een bepaalde weekdag plaatsvindt binnen een bepaalde maand te bepalen. U kunt echter, maak uw eigen formules en functies om de taak te volbrengen.

Ten eerste, rekening houden met de volgende formule.

= 4 + N ((WEEKDAG (DATUM (JAAR ($ A $ 1), MAAND ($ A $ 1), 1))) +
(DAY (DATUM (JAAR ($ A $ 1), MAAND ($ A $ 1) +1,0)) - 28)> (7 * ((
WEEKDAG (DATUM (JAAR ($ A $ 1), MAAND ($ A $ 1), 1)))> (1 + RIJ () -
RIJ ($ A $ 2))) + (1 + RIJ () - RIJ ($ A $ 2))))

De formule is gebaseerd op een datum in A1. Deze datum moet worden van de maand die u wilt "getest." De formule is bedoeld in een cel te kopiëren in rij 2, en vervolgens gekopieerd naar de zes cellen direct daaronder. Bijvoorbeeld, kon u deze formule kopiëren naar het bereik van de cellen B2: B8. De eerste reactie (B2) is het aantal zondagen in de maand, de tweede (B3) is het aantal maandagen, en ga zo maar door.

Het nadeel van deze formule is dat het de positie van de cel met de formule als deel van de formule. Dit betekent dat de formule ergens worden geplaatst vanaf de tweede rij.

Een ander nadeel is dat de formule is vrij lang en ingewikkeld. Als u wilt dat een kortere formule, dan moet u zich te wenden tot een matrixformule. Een handige formule die u kunt gebruiken ervan uit dat u te voorzien van drie argumenten: het jaar (cel C2), de maand (cel D2), en een weekdag (cel E2). Met deze drie punten, de volgende formule werkt geweldig:

= SOM (ALS (WEEKDAG (DATE (C2, D2, RIJ (INDIRECT ("1:" &
DAY (DATE (C2, D2 + 1, 0)))))) = E2, 1, 0))

Vergeet niet dat dit een matrixformule, wat betekent dat je het moet invoeren door op Shift + Ctrl + Enter. Bovendien moet de weekdag waarde u cel E2 invoeren in het bereik van 1 tot 7, waarbij 1 zondag, maandag 2, etc.

Een andere benadering-dit niet te vertrouwen op een matrixformule-is om de datum in cel A1 om welke weekdag gewenst is, zoals gespecificeerd in E2 testen. (Weer een waarde van 1 tot 7, zoals in het vorige voorbeeld.)

= ALS (MAAND (DATUM (JAAR (A1), MAAND (A1), 1) -WEEKDAY (DATUM (JAAR (A1), MAAND (A1), 1) -E2) 35) = MAAND (A1), 5, 4)

De formule controleert eigenlijk om te zien of er een vijfde bijvoorbeeld in de maand van welke weekdag u incheckt. Zo ja, dan is de waarde 5 afgeleverd; zo niet, dan is de waarde 4 is geretourneerd. (De formule terecht ervan uit dat er alleen kan worden 4 of 5 exemplaren van een bepaalde weekdag-nooit minder en nooit meer.)

Macro-gebaseerde oplossingen zijn ook beschikbaar. Een dergelijke oplossing volgt:

Functie MonthWeekDays (dDate Als Date, iWeekDay As Integer)
Dim dLoop Als Date
Als iWeekDay <1 Of iWeekDay> 7 Toen
MonthWeekDays = CVErr (xlErrNum)
Exit Function
End If
MonthWeekDays = 0
dLoop = DateSerial (Jaar (dDate), Month (dDate), 1)
Doe Terwijl Maand (dLoop) = Maand (dDate)
Als de week (dLoop) = iWeekDay Dan _
MonthWeekDays = MonthWeekDays + 1
dLoop = dLoop + 1
Lus
End Function

U gebruikt de functie door het invoeren van het volgende in een cel:

= MonthWeekDays (A1,4)

In dit gebruik, het eerste argument (cel A1) bevat een datum in de maand wordt geëvalueerd. Het tweede argument is een numerieke waarde die de dag van de week die u wilt tellen. Deze waarde moet in het traject van 1 tot 7, waarbij 1 zondag, maandag 2 is enzovoort.

ExcelTips is uw bron voor kosteneffectieve Microsoft Excel training. Deze tip (2183) is van toepassing op Microsoft Excel 97, 2000, 2002 en 2003. U kunt een versie van deze tip voor de ribbon-interface van Excel (Excel 2007 en later) hier vinden: Doordeweeks in een maand.