Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[Excel] Probleem met pauze-berekening

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hallo allemaal

ik ben nu een paar dagen bezig met een calculatie en kom er maar niet uit.
Ik krijg het eerste deel wel werkend.
krijg alleen de andere er niet bij.
op het moment dat ik die toevoeg met AND of OR dan krijg ik Value

het geval is
4 uur werken heb je recht op 15 minuten pauze
6 uur werken heb je recht op 45 minuten pauze
8 uur werken heb je recht op 75 minuten pauze

dit is wat ik al heb

=IF(F4-E4>TIMEVALUE("4:00");F4-E4-TIMEVALUE("0:15");G4)

waar F4 de eind tijd is E4 de beding tijd en G4 het veld waar totaal in komt te staan.

ik hoop dat iemand hier mij er mee kan helpen.
Heb ook alles al op internet en youtube afgezocht

mvg

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Ik heb wat spelfoutjes uit de topictitel gehaald.

Er is bij zoeken op bijv. http://gathering.tweakers...[]=10&keyword=excel+pauze wat inspiratie te vinden.

Alleen al omdat de 'business rules' ooit kunnen veranderen (bijv. kwartier pauze na 3 of 5 uur werken), zou ik het wat veralgemeniseren. Maak een hulptabel waar die 4uur -> 15min, etc. in staan. Dan kan je met verticaal zoeken de juiste aftrek vinden en gebruiken.

Pseudocode waar E en F de begin- en eindtijden zijn en de hulptabel in X2:Y4 staat:

tijd = F4 - E4 - verticaalzoeken ( (F4 - E4); X2:Y4; 1)

Wel even testen op randwaarden.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
bedankt voor je reactie

maar aangezien het niet veranderd zou ik dit toch graag in 1 formule willen hebben

kreeg het met het hulptabel ook niet helemaal voor elkaar

  • pacificocean
  • Registratie: Mei 2006
  • Laatst online: 11-11 22:05
In welke cel staat het if statement? En hoe gaat het nu als er 4:01 uur is gewerkt? Dan bereken je 3:46 uur?

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

Je hebt geen AND of OR nodig, maar een paar geneste IF's. Als A dan a, anders als B dan b, anders als C dan c, etc.

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


Verwijderd

Topicstarter
pacificocean schreef op maandag 16 mei 2016 @ 11:49:
In welke cel staat het if statement? En hoe gaat het nu als er 4:01 uur is gewerkt? Dan bereken je 3:46 uur?
Ik heb de if in g4 staan

de uren zijn in principe vast.

maar tot 6 uur werken is het dat je verplicht een kwartier pauze neemt.
van 6 tot 8 uren werken heb je verplicht een half uur pauze
en 8 uur en hoger verplicht 1 uur en een kwartier.

er zijn wel overige pauzes maar die krijgen ze wel door betaald

Ik zat eerst te denken en misschien een rare denkwijze

ik zet met if de formule er in. met groter of gelijk aan 4 hier 15 minuten pauze en dan groter of gelijk aan 6 hier 30 minuten pauze en groter of gelijk aan 8 ook 30 minuten pauze

Voorbeeld je werkt dan 9,5 uur dan heb je recht op 1,15 uur pauze die daar weer van af gaat.
dus als dr if cel kijkt naar de uitkomst van cel F4-E4 zouden alle 3 true zouden moeten zijn en vervolgens alle 3 toekennen qua pauze.
In dit geval 1,15 uur

Misschien is dit wel helemaal niet mogelijk binnen exel ook maar zo bedacht ik het me om te laten berekenen

wou een voorbeeld mee sturen maar aangezien ik hier nieuw ben geen idee hoe ik dat zou moeten doen

[ Voor 16% gewijzigd door Verwijderd op 16-05-2016 21:00 ]


  • Felair
  • Registratie: Juni 2008
  • Laatst online: 19:59
Ik heb hier zelf ook wel eens mee zitten stoeien, zo even snel denk ik aan de volgende oplossing:

=ALS((H2*24)<=3,99;"0:00:00";ALS((H2*24)<=5,99;"0:15:00";ALS((H2*24)<=7,99;"0:45:00";ALS((H2*24)<=12;"1:15:00";"ONB"))))

in H2 staat de tijd in gewoon uren dus bijvoorbeeld 02:30:33 alsje 2 uur 30min en 33 seconden hebt gewerkt voor het omzetten naar een getal word deze *24 gedaan.
Er moet een eind aan deze formule komen dus bij meer dan 12 uur gaat hij ONB aangeven als je ooit meer dan 12 uur werkt kan je de formule uiteraard nog uitbreiden alhoewel ik het niet hoop voor je ;)

Hopelijk kan je er iets mee.

Verwijderd

Topicstarter
Felair schreef op maandag 16 mei 2016 @ 21:06:
Ik heb hier zelf ook wel eens mee zitten stoeien, zo even snel denk ik aan de volgende oplossing:

=ALS((H2*24)<=3,99;"0:00:00";ALS((H2*24)<=5,99;"0:15:00";ALS((H2*24)<=7,99;"0:45:00";ALS((H2*24)<=12;"1:15:00";"ONB"))))

in H2 staat de tijd in gewoon uren dus bijvoorbeeld 02:30:33 alsje 2 uur 30min en 33 seconden hebt gewerkt voor het omzetten naar een getal word deze *24 gedaan.
Er moet een eind aan deze formule komen dus bij meer dan 12 uur gaat hij ONB aangeven als je ooit meer dan 12 uur werkt kan je de formule uiteraard nog uitbreiden alhoewel ik het niet hoop voor je ;)

Hopelijk kan je er iets mee.
dank je wel ik zal dit eens proberen.

  • DeDooieVent
  • Registratie: April 2005
  • Laatst online: 08-04 13:31
F_J_K schreef op zondag 15 mei 2016 @ 17:35:
Ik heb wat spelfoutjes uit de topictitel gehaald.

Er is bij zoeken op bijv. http://gathering.tweakers...[]=10&keyword=excel+pauze wat inspiratie te vinden.

Alleen al omdat de 'business rules' ooit kunnen veranderen (bijv. kwartier pauze na 3 of 5 uur werken), zou ik het wat veralgemeniseren. Maak een hulptabel waar die 4uur -> 15min, etc. in staan. Dan kan je met verticaal zoeken de juiste aftrek vinden en gebruiken.

Pseudocode waar E en F de begin- en eindtijden zijn en de hulptabel in X2:Y4 staat:

tijd = F4 - E4 - verticaalzoeken ( (F4 - E4); X2:Y4; 1)

Wel even testen op randwaarden.
deze functie is het mooiste naar mijn idee, maar ik zou zoeken in kolom 2 van de matrix :P

  • F_J_K
  • Registratie: Juni 2001
  • Niet online

F_J_K

Moderator CSA/PB

Front verplichte underscores

(Ook) daarom deed ik pseudocode, ik kon even niet herinneren of het tellen zoals het hoort begint bij 0 :+
Verwijderd schreef op maandag 16 mei 2016 @ 21:22:
dank je wel ik zal dit eens proberen.
Zorg dat je het goed test (en begrijpt, immers is het precies wat ik al schreef ;) ), incl grensgevallen: let op het verschil < en <=

'Multiple exclamation marks,' he went on, shaking his head, 'are a sure sign of a diseased mind' (Terry Pratchett, Eric)


  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Met F_J_K en DeDooievent: die geneste if()'s zijn ook mij een gruwel. Gelukkig hoef je ook als je vert.zoeken() gebruikt niet persé een hulptabel te gebruiken: vert.zoeken kan ook in een matrix-constante zoeken. Je neemt ahw de hulptabel op in de formule.

Je krijgt dan iets als:
code:
1
=VERT.ZOEKEN((B1-A1)*24;{0;0\4;0,25\6;0,75\8;1,25};2;1)

waarin:
(B1-A1)*24 --> tijdverschil in hele uren
{0;0\4;0,25\6;0,75\8;1,25} --> de hulptabel: pauze bij de urengrenzen, ook in uren
2 --> haal uit iedere regel de 2e waarde
1--> benaderen aan: pak de 'regel' met de best passende waarde.

Het resultaat is de pauzetijd in uren.

Een ander alternatief is het gebruik van 'kiezen'. Omdat Excel de 'true' intern verwerkt als '1' kun je voorwaarden bij elkaar optellen om dan met kiezen de pauzetijd te bepalen:

code:
1
=KIEZEN(1+(B1-A1>1/6)+(B1-A1>1/4)+(B1-A1>1/3);0;0,25;0,75;1,25)


Hier zie je dat Excel iedere keer uitrekent of een tijdverschil groter is dan een deel van een dag, en daardoor steeds het volgende getal in reeks 0;0,25;0,75;1,25 neemt.

[ Voor 25% gewijzigd door Lustucru op 17-05-2016 00:05 ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

Topicstarter
Ik heb het in middels wekend met een hulp tabel volgens de juiste code

=F4-E4-VLOOKUP((F4-E4);$AA$3:$AB$6;2)

welke dit is geworden getest en werkt

Echter deze code ook geprobeerd waar ik ook erg nieuwsgierig naar ben krijg ik alleen een fout in de code

=VLOOKUP((F4-E4)*24;{0;0\4;0,25\6;0,75\8;1,25};2;1)

Verder ben ik al heel blij dat ik het werkend heb nu

Iedereen onwijs bedankt voor het mee denken

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Verwijderd schreef op dinsdag 17 mei 2016 @ 00:41:
Echter deze code ook geprobeerd waar ik ook erg nieuwsgierig naar ben krijg ik alleen een fout in de code.
Wat vaak problemen oplevert is t juiste gebruik van de scheidingstekens: decimale komma, duizendtallen, lijstscheidingsteken (;), en matrix scheidingstekens. Excel neemt die over van je Windows instellingen en je kunt t ook nog per bestand instellen. Kortom, er zit wat variatie in.
Hoe het bij jou is ingesteld kun je makkelijk nagaan door in de functiewizard bij de werkende vlookup formule te kijken hoe de matrix wordt weergegeven.

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland

Pagina: 1