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

Tijden van elkaar aftrekken

Status
Niet open voor verdere reacties.

michvand

Gebruiker
Lid geworden
23 mrt 2009
Berichten
82
Beste Excel experts,

Graag jullie hulp bij het volgende probleem.

Zie bijlage. In de kolommen B en C in de tabel staan resp. de tijden van zonsopkomst en zonsondergang. Dit gaat zo verder met D en E, F en G, enz voor de maanden opvolgend.
Nu wil ik berekenen het aantal uren en min dat de zon boven de horizon staat per dag.
Van elkaar aftrekken lukt niet, omdat de cijfers achter de punt minuten zijn.
Ik heb een poging gedaan in kolommen onder de tabel door de getallen in minuten om te zetten en dan van elkaar af te trekken. Met het omzetten naar uren en minuten krijg ik een afrondingsprobleem (zie g kolom onder tabel)
Volgens mij moet er een formule bestaan om de getallen om te zetten naar uren en min en moet het vervolgens mogelijk zijn om ze van elkaar af te trekken om als antwoord uren en minuten te krijgen, zonder afrondingsproblemen.
Het handigst is een formule in een cel linksboven en dan naar rechts en beneden door te voeren.
Bij voorbaat dank voor jullie hulp,
Mich.

Bekijk bijlage Probleem met tijden van elkaar aftrekken.xlsx
 
Daarvoor kan je de functies TIJDWAARDE en SUBSTITUEREN gebruiken.
Bijvoorbeeld:
PHP:
=TIJDWAARDE(SUBSTITUEREN(B7;",";":"))
Dit converteert B7 naar een echte tijdwaarde.
Dat kan je dan ook doen voor C7.
Daarna kan je de beide resultaten van elkaar aftrekken.
Voorzie daarna de cellen van de eigenschap TIJD.
Vervang in de formule eventueel de komma door een punt.
 

Bijlagen

  • Probleem met tijden van elkaar aftrekken.xlsx
    18,3 KB · Weergaven: 20
Laatst bewerkt:
Voor B41:
Code:
=ALS.FOUT(TIJDWAARDE(SUBSTITUEREN(B7;",";":"));B7/24)
Cel-format op tijd zetten.

Ik had er nog een ALS.FOUT omheen gezet vanwege de nulwaarden in de decimalen die soms voorkomen (17,00 gaat fout anders...).
 
8,3 en 8,4 gaat ook niet zo lekker volgens mij.

Code:
=--TEKST(SUBSTITUEREN(TEKST(B7;"0,00");",";"");"00\:00\:00")*60

Of:
Code:
=--TEKST(TEKST(B7*100;"0,00");"00\:00\:00")*60

Of:
Code:
=--TEKST(B7*100;"00\:00\:00")*60
 
Laatst bewerkt:
Dank voor jullie antwoorden.

Ik ben nog niet helemaal tevreden.

Tijden als 8.40 zoals bv in cel B22 wordt omgezet in 8:04 i.p.v. 8:40 en dat geldt voor meer tijden die als tweede decimaal een nul hebben. In het omzetten worden 1e en 2e decimaal van deze getallen verwisseld.

Ik heb een bijkomende vraag, in het 3e tabel heb ik tijden van elkaar afgetrokken. Hoe kan ik verhinderen dat er bij een aftrekking van lege cellen “false” komt te staan? ( ik wil deze cellen leeg hebben)

In het 4e tabel wil ik de uitkomsten omzetten in decimale getallen. Bij lege kolommen krijg ik een #value! te zien, bij andere lege cellen 0.00. Hoe kan ik dit verhinderen?

Om mijn vraag te verduidelijken heb ik het bestandje als bijlage toegevoegd.

Vr. groet,
Mich.

Bekijk bijlage Probleem met tijden van elkaar aftrekken(1).xlsx
 
Je hebt ze niet getest.
 
Door de waarde 8,48 in cel B7 om te zetten naar 8:48:00 kan het volgende doen:
=(GEHEEL(B7)+(B7-GEHEEL(B7))*10/6)/24 en dat opmaken als een tijd.

Met *10/6 wordt het fractionele deel van de waarde naar boven bijgesteld, omdat in een uur 60 minuten zitten in plaats van 100
Met /24 wordt de waarde geschikt gemaakt om als tijd te tonen.

In dit voorbeeld: Tik in cel AB7: =(GEHEEL(B7)+(B7-GEHEEL(B7))*10/6)/24
 
Antwoord op je vervolgvraag: Hoe kan ik verhinderen dat er bij een aftrekking van lege cellen #false komt te staan?
Dat kan door de functie ALS.FOUT te gebruiken:
Voorbeeld voor cel D101: =ALS.FOUT(ALS(2*INTEGER(KOLOM()/2)=KOLOM();E69-D69);"")
 
Antwoord op de tweede vervolg vraag: Hoe zet ik de uitkomsten van de 4e tabel om in decimale getallen?

Als je bijvoorbeeld 8:56 wilt wijzigen in 8,56 zonder dat de waarde veranderd dan hoef je alleen maar het formaat van het veld aan te passen in: aangepast met type u,mm.

Als je daarentegen 8:56 wilt veranderen in waarde 8,56 (en 8:56 staat in Cel B100) dan kan je de volgende formule gebruiken: =UUR(B100)+MINUUT(B100)/100.
Echter dit laatste zal voor mij nooit nut hebben.
 
Beste HSV en Hans Douwe.

Dank voor jullie antwoorden.

Aan HSV, ik heb de formuletjes getest. De eerste twee werkten niet zo als ik het wilde, maar uiteindelijk de derde wel!

Aan Hans Douwe: na toepassen van de formule van HSV blijf ik nog steeds de fout hebben dat in een lege cel 0:00 wordt ingevuld. Dat zet zich door in 2e en 3e tabel.
Hoe kan ik die fout er uit halen?

Mich

Bekijk bijlage Probleem met tijden van elkaar aftrekken(2).xlsx
 
deze in C41 en dan doortrekken naar beneden en naar rechts
Code:
=ALS(C7="";"";--TEKST(C7*100;"00\:00\:00")*60)
 
Dank Haije,

dit heeft het probleem met het verschijnen van een getal opgelost.
Ik heb alleen een hoekje in de cel, maar dit zet zich niet door. Met ignore error is het hoekje ook weg te poetsen trouwens.

Om even terug te komen op de opmerking van Hans Douwe dat hij nooit een waarde 8:56 zal omzetten in 8,56, mijn idee, maar sommige sites die tabellen publiceren denken daar anders over.
Voor astronomische berekeningen is het wel handig om de tijden in decimaal om te zetten, maar helaas voor deze precisie berekeningen heeft Excel te veel afrondingsfouten, dan is het beter alles in seconden om te zetten, maar dat is een ander verhaal.

Voor je laatste tip, ik zal daar naar kijken.
Wat mij betreft zijn alle problemen opgelost, ik zal de topic later vandaag afsluiten.

Vr. groet,
Mich
 
Ik bedoel:

Ik zou nooit de waarde tijd 8:56 omzetten in een getal 8,56, omdat dat getal niets meer met de tijd te maken heeft en dan niet meer geschikt is om mee te rekenen.
Als ik de tijd als "8,56" zou willen tonen, zou ik alleen de manier waarop ik de tijd wil tonen aanpassen op de manier zoals ik eerder heb aangegeven.
In dat geval kan je gewoon met de tijden blijven rekenen.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan