|
| Tidsberegning i Excel Fra : Naurton | Vist : 5816 gange 80 point Dato : 31-10-07 18:30 |
|
-Mon ikke der er nogen der kan hjælpe med formlen til tidsberegning i Excel.
Hvis tidsrummet mellem eks.v. kl. 18:15 til 03:30 skal beregnes, tidsrummet går altså over kl. 24.
Samme formel skal kunne bruges til normal tidsberegning mellem eks.v. 11:00 til 18:30
M.v.h.
Naur
| |
| Kommentar Fra : e.c |
Dato : 31-10-07 19:08 |
|
A1> 31-10-07 22:00 Formater celle til klokkeslet med denne visning
A2> 01-11-07 01:30 Formater celle med samm visning
A3> ..............03:30 Formater klokke slet med denne visning og formel = sum(A2-A3)
Det burde kunne gøre det.
| |
|
Citat Du bliver vel nødt til at have datoen med også, for at det kan lykkes. |
Er I sikre?
Nu gider jeg ikke lige starte en PC med M$ Excel op, men hvis man forstår hvad 'et klokkeslet' er, så er det barnemad.
Lad os tage et eksempel:
Tallet ½ kan i de fleste regneark formatteres på forskellige måder:
Som et almindeligt tal: 0,5
Med et fast antal decimaler: 0,50
Som procent: 50%
Som et klokkeslet: 12:00 .. Hov, det vil jo sige, at 'tid' måles i antal døgn. En 24'endedel af et døgn kan enten skrives 0,0416666 eller som 01:00
En dato er så bare en måde at formattere et antal dage efter et eller andet udgangspunkt - fx. 31.12.1899
Fra tid1 til tid2 er der jo (tid2 minus tid1)
Er 3.:30 minus 18:15 så lig minus 14:45 eller er det 9:15?
Det du gerne vil have er en formel der siger "Er resultatet negativt, så lægges en til".
Denne formel er simpel matematik: Tiden er (1 + (tid2 minus tid1)) modulus 1
| |
| Kommentar Fra : Bille1948 |
Dato : 31-10-07 23:29 |
|
Det lyder "meget godt" men der er ikke noget nyt i det du skriver, det er blot andre "ord".
Men Excels "kalender" starter først den 1. januar 1900.
Bill Gates tog ikke højde for datoer denne dato.
| |
| Kommentar Fra : sion |
Dato : 01-11-07 09:54 |
|
Jeg har en helt anden løsning, som jeg mener er meget bedre, da den ikke indbefatter Excels eget tidssystem.
I stedet for Excel-tider, skriver du klokkeslæt som decimaltal. Altså kl 17:30 er 17,3 og kl 01:20 er 1,2. Du kan så formatere decimaltallene, så de kommer til at ligne klokkeslæt, med formatet "00,00".
Mine funktioner er også i stand til at regne tidsforskellen ud henover kl. 24.
Her er et eksempel:
Kolonneoverskrifter
A1: Start-tid
B1: Slut-tid
C1: Beregnet tidsforskel
D1: Beregnet computer-starttid
E1: Beregnet computer-sluttid
F1: Beregnet computer-tidsforskel
Funktioner
A2: Indtast start-tid, eksempelvis 13,30 (cellen formateres som "00,00")
B2: Indtast start-tid, eksempelvis 14,15 (cellen formateres som "00,00")
C2: =3/5*(F2-(HELTAL(F2)))+HELTAL(F2) (cellen formateres som "00,00")
D2: =2/3*(A2-(HELTAL(A2)))+A2
E2: =2/3*(B2-(HELTAL(B2)))+B2
F2: =HVIS(D2=E2;24;HVIS(D2>E2;E2-D2+24;E2-D2))
Resultatet, tidsforskellen, står i C2 - i dette eksempel 00,45.
Computer-tiderne er "[time],[andel_af_time]", der kan adderes og subtraheres (hvad almindelige klokkeslæt ikke kan). Computer-tiderne omregnes til almindelige klokkeslæt i C2.
Den samlede funktionen kan naturligvis sættes sammen og skrives i C2 (kopiér linje for linje):
=3/5*(HVIS(A2=B2;24;HVIS(A2>B2;(2/3*(B2-(HELTAL(B2)))+B2)-
((2/3*(A2-(HELTAL(A2)))+A2)-24);(2/3*(B2-(HELTAL(B2)))+B2)-
(2/3*(A2-(HELTAL(A2)))+A2)))-(HELTAL(HVIS(A2=B2;24;HVIS(A2>B2;
(2/3*(B2-(HELTAL(B2)))+B2)-((2/3*(A2-(HELTAL(A2)))+A2)-24);
(2/3*(B2-(HELTAL(B2)))+B2)-(2/3*(A2-(HELTAL(A2)))+A2))))))+
HELTAL(HVIS(A2=B2;24;HVIS(A2>B2;(2/3*(B2-(HELTAL(B2)))+B2)-
((2/3*(A2-(HELTAL(A2)))+A2)-24);(2/3*(B2-(HELTAL(B2)))+B2)-
(2/3*(A2-(HELTAL(A2)))+A2))))
Simon
| |
|
Citat kan adderes og subtraheres (hvad almindelige klokkeslæt ikke kan). |
Jo, almindelige klokkeslet kan, når man husker:
Tid måles i dage og brøkdele heraf
Tidspunkt måles i dage (og brøkdele heraf) siden 31.12.1899
Trækker du to tidspunkter fra hinanden, så får du tiden mellem dem
Lægger du en tid til et tidspunkt, så får du et nyt tidspunkt.
Mange regneark har en feature der skulle gøre det nemmere at indtaste tal.
Taster du 0,5 så opfattes det som ½ og skrives 0,5
Taster du 12:00 (en halv dag) så opfattes det som ½ men formateret som tid '12:00'
Taster du 12:00 og så vil lægge en time til, så kunne det jo tænkes at det bare var at rette 12:00 til 12:00 + 1/24, men den går så ikke. Programmet kan simpelthen ikke finde ud af hvad du mener. Du må rette formatet til et almindeligt kommaformat, og så kan du lægge 1/24 til og rette tilbage til tid-format, som så bliver 13:00.
Men det går nemt at regne på tider og tidspunkter i 'native' format, dog må du som nævnt i nogle tilfælde rette formatteringen til at vise decimaltal (dage) mens regnearket dannes. Bagefter kan du rette formatteringen til det du synes der er kønnest.
| |
| Kommentar Fra : sion |
Dato : 01-11-07 11:13 |
|
--> henrikkrebs
Du har naturligvis ret - på sin vis Jeg har nok bare ikke forklaret mig tydeligt nok.
Excels tidssystem er måske nok ganske udmærket til datoer og klokkeslæt - men ikke til tid.
Lad os tage det eksempel, at du på en arbejdstimeseddel har start- og sluttidspunkt hver dag, og beregner tidsforskellen/arbejdstiden. Så langt går det godt. Men når du så summerer arbejdstiderne for hver dag for at beregne din samlede arbejdstid for hele perioden, går det galt for Excel, da den starter fra nul, hver gang den når til 24 timer.
Derudover er jeg meget træt af Excels autoformatering mht. dato/tid. Hvis man eksempelvis indtaster 50 timer og 13 minutter som "50:13", så står der i cellen "02-01-1900 02:13:00" - det kan jo ikke bruges til at regne med.
Jeg mindes også at have haft problemer med, at to ens klokkelsæt ikke har være lig med hinanden (når man f.eks. tester i en HVIS-funktion). Det har også givet nogle problemer.
Derfor lavede jeg får nogle (mange) år siden de funktioner, jeg har har skrevet i mit foregående indlæg.
Simon
| |
|
Ja - problemfrit er det ikke.
Skal vi gå over til internet-tid (døgnet delt i 1000 beats)?
Jeg mødte forleden en englænder og vi talte om vægt - han vejede et eller andet antal stones (á vistnok 14 pounds). Jeg tænkte "de er frygtelig antikverede de englændere".
Vi er vel lige så håbløst bagud med døgn/timer/minutter/sekunder
| |
| Kommentar Fra : sion |
Dato : 01-11-07 14:29 |
|
--> e.c
01:20 skrives som 1,2 - det kommer med formateringen "00,00" til at stå som 01,20.
01:50 skrives som 1,5 - det kommer med formateringen "00,00" til at stå som 01,50.
Simon
| |
| Kommentar Fra : sion |
Dato : 01-11-07 14:35 |
|
Hvis 01,20 indtastes, bliver det omregnet til computer-tiden 1,3333 - altså 1 1/3 time.
Hvis 01,50 indtastes, bliver det omregnet til computer-tiden 1,8333 - altså 1 5/6 time.
Forskellen i computertid bliver da 1,83 - 1,33 = 0,50 (altså 1/2) - dette omregnes til almindeligt klokkeslæt til 0,30 (eller i formatet "00,00" til 00,30) (nul timer og 30 minutter).
Simon
| |
| Kommentar Fra : sion |
Dato : 01-11-07 14:44 |
|
Overstående eksempel viser ikke nødvendigheden af alle mine funktioner. Tilsyneladende kunne man jo bare have trukket 1,2 fra 1,5 og fået 0,3...
Men prøv med 1,2 (kl. 01:20) og 2,1 (kl. 02:10): 2,1 - 1,2 = 0,9... Det er helt forkert. Der er ikke 90 minutter, og det giver ingen mening at sige 00,90 timer.
Vha. mine funktioner regnes klokkeslættene om til computer-tiderne 1,33 og 2,17. Forskellen er da 2,17 - 1,33 =
| |
| Kommentar Fra : sion |
Dato : 01-11-07 14:47 |
|
Overstående eksempel viser ikke nødvendigheden af alle mine funktioner. Tilsyneladende kunne man jo bare have trukket 1,2 fra 1,5 og fået 0,3...
Men prøv med 1,2 (kl. 01:20) og 2,1 (kl. 02:10): 2,1 - 1,2 = 0,9... Det er helt forkert. Der er ikke 90 minutter, og det giver ingen mening at sige 00,90 timer.
Vha. mine funktioner regnes klokkeslættene om til computer-tiderne 1,33 og 2,17. Forskellen er da 2,17 - 1,33 = 0,83 (altså 5/6) - dette omregnes til almindeligt klokkeslæt til 0,50 (eller i formatet "00,00" til 00,50) (nul timer og 50 minutter).
Simon
| |
| Kommentar Fra : sion |
Dato : 01-11-07 15:12 |
|
Jeg har lige siddet og leget lidt med regnearket...
Funktionen i F2 kan med fordel erstattes med =HVIS(D2=E2;24;REST(E2-D2;24))
Således kan den samlede funktion (som giver samme resultat som C2) ændres til:
=3/5*(HVIS(A2=B2;24;REST((2/3*(B2-HELTAL(B2))+B2)-(2/3*(A2-HELTAL(A2))+A2);24))-
HELTAL(HVIS(A2=B2;24;REST((2/3*(B2-HELTAL(B2))+B2)-(2/3*(A2-HELTAL(A2))+A2);24))))+
HELTAL(HVIS(A2=B2;24;REST((2/3*(B2-HELTAL(B2))+B2)-(2/3*(A2-HELTAL(A2))+A2);24)))
Simon
| |
| Kommentar Fra : meiland |
Dato : 02-11-07 08:41 |
|
Hej Naurton
Nu skriver du ikke hvordan du vil skrive tidspunkterne i excel og hvad du skal bruge det til.
Jeg har før brugt excel til et flexseddel, hvor jeg har indtastet f.eks. 16,25 (kl. 16.25) og fået det omregnet til decimaltimer (16,42).
Løsningen på problemet med sluttider efter midnat er at lægge 24 til tidspunktet, hvis det drejer sig om en dag.
Nu har jeg delt tidspunkterne op så jeg indtaster timer og minuter i seperate celler. Jeg kan maile dig arket, hvis det har interesse.
| |
| Kommentar Fra : meiland |
Dato : 02-11-07 13:07 |
|
Eksempel
Starttid 18.30
Sluttid 03.15
b10=18
c10=30
d10=3
e10=15
f10=hvis(d10-b10<0;d10-b10+24;d10-b10) resultat = 9
g10=e10-c10 resultat=-15
h10=f10+g10/60 resultat = 8,75 (Tidsforbrug i decimaltimer (1 time = 100 minnutter)
| |
|
... men jeg holder mig nu til at regne i dage og decimaldele heraf og vise det (hvor det er ønsket) som tid. Det kræver dog trods alt færre formler
| |
| Kommentar Fra : Naurton |
Dato : 03-11-07 21:46 |
|
Tidsberegning i Excel:
Formlen er: =("24:00"-H9)+I9
Hvor H9 er celle for starttid, og I9 er celle for sluttid, -vil give resultatet for den ønskede periode, uanset om sluttid går over 24:00
Naur
| |
|
Citat Formlen er: =("24:00"-H9)+I9
Hvor H9 er celle for starttid, og I9 er celle for sluttid, -vil give resultatet for den ønskede periode, uanset om sluttid går over 24:00 |
Det er vigtigt at forstå det der ligger bag. Det er nemlig ikke rigtigt at resultatet vil blive korrekt uanset om sluttid går over 24:00.
Hvis sluttiden går over 24:00, så vil resultatet blive et tal under 1. Det kan vises som et antal timer under 24, fx "9:15"
Hvis sluttiden ikke går over 24:00, så vil resultatet blive et tal over 1 (nemlig eet døgn og nogle timer. Det kan også vises som et antal timer under 24, fx "9:15". Så egentlig ser det smukt ud, men prøv at lægge fx en hel uges timer sammen. Så er det ikke ligegyldigt om resultatet bliver 1 (= et døgn = 24 timer) eller 2 (=48 timer)
Men det er slet ikke så svært. Der findes en funktion 'modulus' der klarer det. Der er sikkert også en 'decimal-del', men jeg har ikke lige excel her.
| |
|
Jeg kan.
Men samtidig ved jeg at undersøgelser af fejlforekomster viser at 'maskinregning' af selv simple regnestykker giver langt færre fejl end hovedregning. Forskellige undersøgelser giver forskellige resultater, men de ligger i intervallet fra brøkdele af promille op til 30% af fejlhyppigheden i hovedregnede tal.
| |
| Kommentar Fra : dbl |
Dato : 05-11-07 04:47 |
|
Hvorfor så meget udregning.
[B]Her er hvordan du gør.[/B]
Start med at formater dine celler til klokkeslæt (den uden sekunder).
I celle A1 indtaster du din mødetid (18:15) skal skrives med " :"
I celler B1 indtaster du din sluttid (03:30) skal skrives med " :"
Udregningen i f.eks. celler C1 skal se således ud =B1-A1+(A1>B1)
Mvh.
d.Buus
www.dbuus.dk Gratis regneark
www.mextos.dk Sport og Legetøj
| |
| Kommentar Fra : dbl |
Dato : 05-11-07 07:41 |
|
PS! Hvis du skriver det som jeg har beskrevet ovenfor, så vil du få nogle "sjove" tal hvis enten A1 eller B1 ikke er udfyldt.
Det kan rettes ved at bruge denne formel i C1
=HVIS(A1=0;0;HVIS(B1=0;0;(B1-A1+(A1>B1))))
Mvh.
d.Buus
| |
| Accepteret svar Fra : dbl | Modtaget 80 point Dato : 05-11-07 07:49 |
|
PSS! Jeg har lige uploadet et lille ark så du (i andre må også godt kigge med) kan se at det virker.
http://peecee.dk/?id=76689
Mvh.
d.Buus
| |
| Godkendelse af svar Fra : Naurton |
Dato : 05-11-07 19:36 |
| | |
| Kommentar Fra : dbl |
Dato : 05-11-07 20:13 |
| | |
| Du har følgende muligheder | |
|
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.
Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
| |
|
|