Berekening van uren

Bespreek het rekenblad
Leen Thielemans
Berichten: 5
Lid geworden op: wo jul 16, 2014 11:33 am

Berekening van uren

Bericht door Leen Thielemans »

goeie morgen,

ik probeer om voor mij een uurrooster aan te maken, waarbij ik mijn actieve nachturen en slapende nachturen kan berekenen.
had al iets gevonden op dit forum, en dat heb ik kunnen gebruiken als start, het uurrooster dat ik heb gemaakt is voor een groot stuk daaruit geleend, wat al een grote hulp was :D

waar zit het probleem?
het probleem dat ik heb zit erin dat als ik geen uren invul, er een foutmelding #WAARDE! verschijnt in de kolom N :(

in bijlage heb ik het document bijgevoegd, omdat ik het moeilijk vind om het uitgelegd te krijgen, wat ik nu precies bedoel
In de kolom N zouden dus de actieve uren moeten verschijnen, en die worden berekend vanaf 00:00 uur tot ik ga slapen, en ze tellen verder vanaf ik wakker wordt tot 08:00 uur en het totaal ervan moet dan vermenigvuldigd worden met 2, maar het maximum aantal uren mag nooit hoger zijn dan 5 (de max. grens heb ik gezet in cel O1)

in de bijlage heb ik bv de kolommen van nacht tem nacht ingevuld, zodat ik precies telkens 1 uur werk, wat maakt dat ik als totaal actieve nacht kom aan 4:00 uur: 's morgens van 07:00 tem 08:00 en 's avonds van 0:00 tem 01:00 : 2 uur effectief gewerkt, maar dit wordt dan vermenigvuldigd met 2 zodat ik aan 4 uur kom.

volgende formule heb ik gevonden:
=(ALS(EN(J7="";K7="");"";ALS(EN(J7="";NIET(K7>$O$1));K7;ALS(EN(K7="";J7<$O$1);J7;ALS(J7+K7<$O$1;J7+K7;$O$1))))*2)+ALS(EN(B7="";C7="");"";(C7-B7)*2)

maar dan krijg ik dus die foutmelding van waarde, als ik niks invul in de kolommen C-B (uren van ontwaken tot 08:00) en K-J (0:00 tot slapen), maar als ik daar zet 0:00 tot 0:00 in die 4 kolommen krijg ik als resultaat 0:00 wat correct is :-)

dus de formule op zich klopt wel, volgens mij, maar als het mogelijk is, zou ik liever niks zetten in de kolommen C - B en K - J en dat het vakje in kolom N dan ook blanco blijft. En als dit probleem opgelost is, ben ik ook van de foutmelding #WAARDE! af in het weektotaal :D
wie kan me hier bij helpen?
Bijlagen
blanco2.ods
(126.91 KiB) 255 keer gedownload
Libre Office versie 4.1.0.4
besturingssysteem Linux
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Berekening van uren

Bericht door RPG »

Hallo

Naast het maken van een spreadsheet is een belangrijke taak het uit werken van de fouten dit heet debuggen of foutzoeken. Voor een spreadsheet moet de formule geheel uitgeplozen worden. Voor een deel is dat blijkbaar gedaan. De tweede stap is de uitwerking. Het lijkt mij dat het daarin ontbreekt op dit moment.

Uitwerking
Blijkbaar heeft de formule een waarde nodig. Dit mag zijn:
  • Een echte waarde.
    Een fictieve waarde die de berekeningen niet beinvloed.
    Een test die het probleem oplost.
    Een extra kolom die het probleem oplost.
Ik heb geen idee wat de beste oplossing is. Ik denk dat ik zou kiezen voor een combinatie van een extra kolom waarin een fictieve waarde komt te staan die de berekeningen niet be-invloed.

Algemeen
Ik heb het idee dat je teveel naar het eind resultaat toewerkt. Begin eerst met de basis gegevens. De basisgegevens zijn per dag. Het zou best kunnen zijn dat als je de basis gegevens goed organiseert dat je dan met een pivot tabel de gewenste eindresultaten kunt berekenen. Aan een zelfde tabel kun je ook meer pivot-tabellen hangen.

Hoe je de tabel maakt is afhankelijk van de gewenste uitkomsten. In het algemeen is het flexibeler om goed gebruik te maken van een tabel met weinig kolommen , goed gekozen trefwoorden en datums en daarna resultaten uit die tabel halen.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Leen Thielemans
Berichten: 5
Lid geworden op: wo jul 16, 2014 11:33 am

OPGELOST - Re: Berekening van uren

Bericht door Leen Thielemans »

Hey,

ik heb me gisteren er nog is, samen met een collega, over gebogen en we denken dat we er bijna uit zijn :)

we zijn al tot deze formule gekomen
=(ALS(EN(J10="";K10="");"";ALS(EN(J10="";NIET(K10>$O$1));K10;ALS(EN(K10="";J10<$O$1);J10;ALS(J10+K10<$O$1;J10+K10;$O$1))*2)+ALS(EN(B10="";C10="");"";(C10-B10)*2)))
het enige dat we nu nog moeten zien rond te krijgen is dat hij ook rekening houd met de kolommen b en c, want die horen ook tot de actieve nacht.

we hebben geprobeerd om de formule uit te splitsen zodat elke ALS-formule apart wordt berekend.
toen we dit rond kregen, was het enkel nog de formule terug bij mekaar te krijgen, zodat het eindresultaat klopt :D

maar ik moet je gelijk geven, voor mij telt alleen het eindresultaat, en ik vergeet dan meestal dat je moet beginnen met het begin en niet direct het gewenste resultaat wil zien staan :oops:

in ieder geval al wel bedankt voor je hulp en tips
Libre Office versie 4.1.0.4
besturingssysteem Linux
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Berekening van uren

Bericht door RPG »

Hallo

Ik herken de manier van programmeren wel. Dat is namelijk hoe ik ook zelf nog vaak werk. Ik heb geleerd uit een eenvoudig studie boek dat de beste manier is om met stapjes te werken. Als ik met stapjes werk heb ik ook de neiging de controle te laten doen in de ontvangende module. Beter is om de controle te doen in de module die de gegevens moet afleveren aan de volgende module.

In jullie geval wanneer de gegevens ingevoerd worden dan laten kijken of het wel kan kloppen wat er in gevoerd wordt. Op dat moment kan ook gelijk een teken gegeven worden dat het al of niet goed is. Je kunt dan voorkomen dat er foute gegevens komen in de tabel waar verdere bewerkingen worden gedaan. Het resultaat hier van is dat de eerste controle eenvoudiger er uit komt te zien maar ook de volgende berekening wordt eenvoudiger.

De reden van de fout.
Het zou best kunnen dat de reden van de fout is gelegen in het feit dat jullie een lege string gebruiken als vervangende waarde. Misschien is het beter om een 0(= Nul) te gebruiken gezien het feit dat julie met rekenkundige waarden werken.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Leen Thielemans
Berichten: 5
Lid geworden op: wo jul 16, 2014 11:33 am

OPGELOST - Re: Berekening van uren

Bericht door Leen Thielemans »

Hallo,

het is inderdaad het beste van in stapjes te werken en elke formule apart te zoeken en ze op het allerlaatste moment tot 1 geheel te krijgen :-)
dan ben je tenminste zeker dat elke formule apart een correcte uitkomst geeft voor die formule, en is daarna het ook makkelijker om er 1 geheel van te maken.

we hebben een aanpassing gedaan door de dag te laten beginnen op 0:00 uur en te laten eindigen op 24:00 uur, zodat de actieve nachten worden berekend op de eerste 4 kolommen. dit is qua invullen ook wat handiger omdat dan alle actieve nachturen bij elkaar staan.

in bijlage terug het bestand met in kolom N dus de enige echte correcte formule :D
ik zal onze gevonden formule ook hier misschien nog even vermelden

=ALS(OF(B13="";C13="";D13="";E13="");"";ALS((((C13-B13)+(E13-D13))*2)>$O$1;$O$1;(((C13-B13)+(E13-D13))*2)))

bij deze dus nogmaals mijn dank voor alle hulp en tips :-)
Bijlagen
blanco.ods
(115.54 KiB) 225 keer gedownload
Libre Office versie 4.1.0.4
besturingssysteem Linux
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Berekening van uren

Bericht door RPG »

Hallo

Laat ik beginnen met te vermelden dat ik waarschijnlijk ook geen oplossing weet. Zeker niet een oplossing die ik zo kan vermelden.

Bij mij rijst de vraag wat is het doel van alles? Andere vragen die op rijzen zijn dan:
Wie vult het in.
Wordt het ingevuld door personen
Wie kijkt er naar het eind resultaat is dat bedoeld voor leiding gevenden?

Persoonlijk heb ik het idee dat wanneer je het programma klaar hebt niets met de gegevens kunt doen.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Leen Thielemans
Berichten: 5
Lid geworden op: wo jul 16, 2014 11:33 am

Re: Berekening van uren

Bericht door Leen Thielemans »

Hallo,

het doel van het document is dat als ik mijn gepresteerde/afwezigheid uren invul ik op het einde van de maand weet hoeveel uren ik
- actieve nacht
- slapende nacht
- avonden
- zaterdagen
- zondagen
- feestdagen
heb gedaan, want daar krijg ik een premie voor :-D

dus ik vul dit zelf in, en op het einde van de maand kijkt mijn overste dit na, om te weten hoeveel hij me extra moet betalen die maand.
erg makkelijk en het invullen zelf neemt ook niet al te veel tijd in beslag, dus voor mij (en mijn collega's super handig) en mijn overste is ook content, want nu moet hij enkel naar het eindtotaal kijken om te weten wat het resultaat is :-D
en zo heb ik ook een beetje controle als ik mijn loonfiche krijg, want daar worden de uren op vermeld (en ook het bedrag natuurlijk)

Leen
Libre Office versie 4.1.0.4
besturingssysteem Linux
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Berekening van uren

Bericht door RPG »

Hallo

Ten eerste dank voor het antwoord. Je moet gewoon doorgaan met de door jouw gekozen manier want dan zie je resultaten. Wanneer je verder nog wat wil doen met OOo en speciaal met calc dan is het misschien aan te raden om je ook te verdiepen in wat je kunt doen met ingebouwde tools zoals de pivot table anders misschien wel SQL.

Een pivot table kan een lange rij met gegevens in dit geval diensten goed gesorteerd en opgeteld weer te geven. Ik heb geen voorbeeld kunnen maken daar ik geen grip krijg op de tabel. Het kost wel enige moeite om grip te krijgen op een pivot tabel maar vaak krijg je toch ook snel resultaat.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Alex
Berichten: 103
Lid geworden op: do feb 25, 2010 8:46 pm

Re: Berekening van uren

Bericht door Alex »

Dat je bij je oorspronkelijke formule #WAARDE! te zien krijgt als de tijden niet ingevuld zijn, komt doordat je teksten als getallen probeert op te tellen.
Als je =(ALS(EN(J7="";K7="");"";ALS(EN(J7="";NIET(K7>$O$1));K7;ALS(EN(K7="";J7<$O$1);J7;ALS(J7+K7<$O$1;J7+K7;$O$1))))*2)+ALS(EN(B7="";C7="");"";(C7-B7)*2)
vervangt door =(ALS(EN(J7="";K7="");0;ALS(EN(J7="";NIET(K7>$O$1));K7;ALS(EN(K7="";J7<$O$1);J7;ALS(J7+K7<$O$1;J7+K7;$O$1))))*2)+ALS(EN(B7="";C7="");0;(C7-B7)*2)
krijg je 00:00 waar nu #WAARDE! staat.
Wil je nulwaarden onderdrukken gebruik dan UU:MM;-UU:MM;@ als opmaakformaat.
AOO 4.1.15 & LO 24.2 op Windows 10
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Berekening van uren

Bericht door RPG »

In een andere draad werd ik opgenieuw geconfronteerd met de vraag naar uren-registratie. In urenregistratie voor onregelmatige diensten heb ik een wat uitleg gegeven over wat naar mijn idee de beste oplossing is. Kort gezegd komt dat er op neer: maak een simpele tabel waarin alles staat wat noodzakelijk is wordt vastgelegd met tijd-stempel voor het begin en het einde van een periode. De periode wordt bepaald door de werktijd maar ook door andere vereisten om tot de gewenste uitkomst te komen. Het probleem is nu feitelijk opgesplitst in drie problemen:
a) Het definieren van een tabel
b) In vullen van de tabel
c) Het verwerken van de tabel

Het definieren van de tabel is gedaan in de bovenstaande link. Het invullen van de tabel is naar mijn idee voorlopig gewoon handwerk. Wanneer het ontwerp van de tabel voldoet kan misschien gewerkt worden naar iets wat gemakkelijk is maar voor thuis gebruikers zal het vaak handwerk blijven.

Het verwerken van de tabel
Naar mijn idee voldoet de gekozen opzet van de tabel goed om met een draaitabel goed uit te werken. Hier bij is wel kennis nodig hoe een draai-tabel werkt. Aan een mooi vorm gegeven tabel heb ik nog niet gedacht. Een draaitabel heeft naar mijn idee het doel om de goede uitkomsten te genereren. Het is ook niet zo dat een enkele draaitabel alle gewenste uitkomsten tegelijk geeft. Het is heel goed mogelijk dat meerdere draaitabellen nodig zijn om alle gewenste uitkomsten te tonen. Voorlopig lijkt mij daar niets optegen.

Er is nog een mooie functie die in staat is om alle gegevens uit een draaitabel te halen en te plaatsen in een iets ander vorm gegeven tabel. Dit alles kost de computer niet zoveel tijd.

Waarom heb ik deze oude draad opnieuw naar boven gehaald: dat is omdat ik echte gegevens nodig had om het een en ander te testen. Bij gesloten een omgewerkte werkblad waarin de zelfde gegevens staan maar dan anders gerangschikt.

Romke
Bijlagen
UrenRegistratie01.ods
Werken met uren en tijden
(61.57 KiB) 186 keer gedownload
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Leen Thielemans
Berichten: 5
Lid geworden op: wo jul 16, 2014 11:33 am

Re: Berekening van uren

Bericht door Leen Thielemans »

goeie morgen,

dat was wel even schrikken, na zoveel tijd nog is een reactie :D
ondertussen is ons systeem helemaal uitgedokterd en in voege en het werkt zoals het hoort, wat vooral belangrijk is.
ik zal onze Uurrooster zoals we hem nu gebruiken toevoegen zodat iedereen er kan van meegenieten en gebruiken.

groeten,
Bijlagen
2018.ods.zip
(110.68 KiB) 184 keer gedownload
Libre Office versie 4.1.0.4
besturingssysteem Linux
RPG
Berichten: 4667
Lid geworden op: wo apr 15, 2009 1:01 am
Locatie: Apeldoorn, Nederland

Re: Berekening van uren

Bericht door RPG »

Hallo

Er was geen reden om te schrikken. Het is mooi dat je een goed werkend programma gemaakt hebt. Zoals je misschien gezien hebt probeer ik via een andere manier tot een oplossing te komen. Ik herken wel de manier hoe gewerkt is. Meestal is er al goed werkend systeem op papier en dat wordt na gemaakt in de computer. De reden van dit namaken ligt in de eerste plaats voor de hand: het past binnen onze manier van denken. Soms wordt het van bovenaf opgelegd maar dat is principe gelijk aan: het past binnen onze manier van denken. Voor beide gevallen geldt dat het bewandelen van andere wegen niet gemakkelijk is. Het is vooral niet gemakkelijk omdat we het ons niet kunnen voorstellen. Pas op het moment toen ik voor me zelf het idee kreeg dat alle belangrijk tijds-momenten vastgelegd moesten worden in een tabel kreeg ik er wat vat op. Daarbij kwam dat ik al twee andere belangrijke stappen gezet had. Die twee belangrijke stappen zijn:
  • Het begrijpen van de draaitabel.
    Het begrijpen van de functie draaitabel.ophalen.
Het begrijpen van de drie zaken; het maken van een tabel, draaitabel en het draaitabel.ophalen, lag soms jaren uit elkaar. De onderdelen zelf zijn niet zo moeilijk maar het begrijpen van de mogelijkheden samen. Dat maakt dat ik nu probeer om van een reeks gegevens een gewenst resultaat te maken. In dien het niet volmaakt is dat niet erg. Ik hoop dat het in ieder geval functioneel is. Het kan zijn dat het eindresultaat niet meer 100% gelijk is aan de papier versie. Het belangrijkste is dat er gemakkelijk informatie uit de gegevens komt. Ik denk dat dat het beste kan door de gegevens zoveel mogelijk in originele toestand te houden.

Bovenstaande uitleg maakt waarschijnlijk ook duidelijk dat ik meer geïnteresseerd ben in een spreadsheet met gegevens over het jaar 2017 dan in een leeg blad over 2018. De door jouw gebruikte formules zijn waarschijnlijk moeilijk aan te passen door en voor anderen. Ik hoop iets algemeners te bereiken. Het iets algemenere zal waarschijnlijk niet door een ieder te begrijpen zijn maar het is een model waar ik ook naar kan verwijzen indien er opnieuw vragen komen over een soortgelijk onderwerp. Ook is het mogelijk dat zoekers het vinden en gaan bestuderen. Dus de vraag is: is het mogelijk dat ik een volledig blad kan krijgen over het jaar 2017 met gegevens of anders een blad over het jaar 2018 voor zover het ingevuld is. Let er wel op dat er geen privacy gevoelige informatie in staat daar ik de gegevens mogelijk ook gebruik voor voorbeelden op dit forum.

Romke
LibreOffice 7.4.3.2 op openSUSE Leap 15.4
Plaats reactie