• 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.

Compensatie te korte rusttijden in een rooster.

Status
Niet open voor verdere reacties.

Haije

Terugkerende gebruiker
Lid geworden
24 mrt 2009
Berichten
4.418
Besturingssysteem
Windows 11
Office versie
Office 2016 Professional Plus en Office 2010 Home & Student
Hallo,

ik probeer de controle van rusttijden in een roulering in een Excel-tabel te gieten.

In de bijlage, tabblad Data, worden de gegevens in de kolommen A t/m L aangeleverd (als .xlsx of als .txt).
In de volgende kolommen dient de controle plaats te vinden.
Het probleem komt in kolom P, waar aangegeven moet worden op welke regel de compensatie van een te korte weekrust plaatsvindt.

In tabblad Regels staan de van belang zijnde rusttijd regels.
 

Bijlagen

Verklaar u nader want ik begrijp er niets van. Je importeert een soort van urenbriefje met daarin wat? eindtijd-begintijd = duur? geen pauzes? Wat staat er in de kolom 'rust na'? Welke CAO probeer je in dit model te vangen? Het lijkt op de CAO voor Beroepsgoederenvervoer maar wijkt wel een beetje af. Voor het rekenen met uren zijn er voldoende specialisten hier maar dan moet je wel een duidelijk verhaal hebben.;)
 
het zal deze richting uit moeten gaan;

in P8

=SUMPRODUCT((M9:M15="dagelijkse rust")*(O9:O15>N8)*(O9:O15))
 
Allemaal hartelijk dank voor jullie bijdrage:

@VenA
de geïmporteerde gegevens hebben betrekking op diensten in het OV.

Deze diensten zijn gemaakt in een daarvoor bestemd programma (Hastus).
Daarbij wordt rekening gehouden met allerlei (per regio verschillende) voorwaarden, regels en afspraken.
Deze diensten worden daarna in een roulering geplaatst en die roulering dient gecontroleerd te worden op de regels die in het eerste tabblad staan.

De gegevens begintijd, eindtijd en duur zijn het resultaat van het dienstenmaakproces en daarin zijn ook pauzes opgenomen;
het kan voorkomen dat eindtijd -/- begintijd NIET gelijk is aan duur, b.v. omdat er sprake is van een zgn. gebroken dienst (dat is een dienst met een onbetaalde onderbreking van minimaal 1:30 uur).

In de kolom 'rust na' staat de tijdsduur tussen einde huidige dienst en begin volgende dienst.

@sylvester-ponte
ik heb de gegevens in een Excel-tabel gegoten, omdat dan de evt formules automatisch ook gelden voor toe te voegen regels, maar het kan/mag ook buiten de tabel.
Het kan ook m.b.v. een macro, maar ik wil in eerste instantie graag gebruik maken van de functionaliteiten van tabellen.

@snb
ik zal je voorstel z.s.m uitproberen en daarna mijn bevindingen melden.
 
@snb

na vertaling in het NL wordt dat dus:
Code:
=SOMPRODUCT((M9:M15="dagelijkse rust")*(O9:O15>N8)*(O9:O15))
en dat levert de correcte waarde 7:41 op, maar ik was eigenlijk op zoek naar het adres van deze cel
waar aangegeven moet worden op welke regel de compensatie van een te korte weekrust plaatsvindt.

bovendien ik heb een aanpassing moeten doen, omdat ook gekeken mag worden naar de "normale weekrust" en er dit van gemaakt:
Code:
=SOMPRODUCT((OF(M9:M15="dagelijkse rust";M9:M15="normale weekrust"))*(O9:O15>N8)*(O9:O15))
en dat levert de waarde 24:49 op.
Dat is een optelling van alle waarden die voldoen aan de voorwaarde: >N8

In de bijlage is deze laatste formule opgenomen

Concrete vraag is nu:
Hoe kom ik nu aan het adres van de eerste waarde die aan de voorwaarde ">N8" voldoet?
 

Bijlagen

gebruik 'match' i.c.m. 'address'.

Matrixformule:
PHP:
=IF($M8="korte weekrust";ADDRESS(MATCH(1;OR(M9:M$150="dagelijkse rust";M9:M$150="normale weekrust")*(O9:O$150>N8);0)+ROW(M8);15);"")

of

PHP:
=IF(LEFT($M8;1)="k";ADDRESS(MATCH(1;OR(LEFT(M9:M$150;1)="d";LEFT(M9:M$150;1)="n")*(O9:O$150>N8);0)+ROW(M8);15);"")
 
Laatst bewerkt:
@snb, bedankt, dit levert het gewenste adres!:thumb:

Code:
=ALS($M8="korte weekrust";ADRES(VERGELIJKEN(1;OF(M9:M$150="dagelijkse rust";M9:M$150="normale weekrust")*(O9:O$150>N8);0)+RIJ(M8);15);"")
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan