PNG32 PNG32 PNG32 PNG32
PNG32
Forum Excel, VBA, VSTO, Exceltips, Excelhj�lp PNG32 drivs av Excelspecialisten    Logga in     English
PNG32
PNG32 PNG32
PNG32

Logga in

PNG32

Du är inte inloggad. Logga in eller registrera dig för att skriva inlägg eller svara på inlägg.

För frågor om forumet, kontakta oss på webmaster@excelforum.se

PNG32 PNG32
PNG32 PNG32
PNG32

Excelforum

PNG32

 
ForumForumDiskussionerDiskussionerExcelExcelRäkna tid i ExcelRäkna tid i Excel
Föregående Föregående
 
Nästa Nästa
Nytt inlägg
 2016-10-20 13:40
 

 Hej, Har en fråga om någon vet hur antal timmar mellan två tider kan räknas ut i Excel. Förutsättningen för tidsuträkningen är att det bara är tid för vardagar mellan 08.00 till 18.00 Uträkningen gäller för tid som förflutit mellan en starttid och en klartid.

Det kan t.ex. vara från 2016-10-18 kl.13.00 till 2016-10-18 kl.20.00 vilket skulle resultera i 5 timmar eftersom det bara är tiden fram till 18.00 som ska räknas ut, eller som ett ytterligare exempel från 2016-10-18 kl 13.00 till 2016-10-19 kl.11.00 vilket skulle resultera i 8 timmar (13.00 till 18.00 plus 08.00 till 11.00 nästa dag)

Går detta att hantera i Excel som ju är ett fantastiskt kompetent program. Tacksam för något tips angående detta.

Nytt inlägg
 2016-10-21 21:07
Accepterat svar 
Det är både lättare och svårare än vad man skulle tro.

Vi börjar med förutsättningarna:
0. du har kollat upp hur tid fungerar i excel, dvs att det finns ett decimaltal bakom datumet där heltalsdelen ger datum och decimalen ger tid (1=24 timmar, 1/24= en timme, (1/24)/60 = en minut. osv . rätt ok beskrivning på den här sidan:
http://andersexcel.se/rakna-med-tid-excel/

1. Du har matat in tiderna enligt excels/windows system, dvs dina första exempel står som
2016-10-18 13:00:00
2016-10-18 20:00:00
2. Dina tider står i cell A1 (starttid) och B1 (Sluttid)
3 Nedanstående formler kräver att cellen där formeln skall stå är formaterad som tal eller allmänt [Ctrl]+0

Om vi inte behövde ta hänsyn till dina "döda timmar" så behöver man bara skriva
=(B1-A1)*24
Eller, avrundat
=TIMME(B1-A1)
för att få ut timmarna

Om du vill begränsa timmarna blir det krångligare: Vi börjar med ditt första exempel där allt händer under ett dygn.
Starttiden är då det HÖGSTA värdet av 08:00 eller det klockslag som står i A1
Och Sluttiden är det MINSTA värdet av 18:00 eller det klockslag som står i B1
Håller du med?
I excel blir då starttiden (avrundat till heltimme)
=MAX(TIMME(A1);8)
eller, exakt
=MAX(REST(A1;1);TIDVÄRDE("8:00"))*24

Och sluttiden blir
=MIN(TIMME(B1);18)
exakt
=MIN(REST(B1;1);TIDVÄRDE("18:00"))*24

För att få ut arbetstid mellan 8:00 och 18:00 blir då formeln
=MIN(TIMME(B1);18)-MAX(TIMME(A1);8)
Eller
=(MIN(REST(B1;1);TIDVÄRDE("18:00"))-MAX(REST(A1;1);TIDVÄRDE("8:00")))*24

För att det här skall fungera över flera dagar behöver du krångla till det. Antingen räkna första och sista dagen separat + (18-8)*antal dagar mellan.
Eller en snurra där du tar (Sluttid - starttid)*24 och drar av den "lediga" tiden.

Den här formeln räknar första och andra dagen separat. borde fungera för 2 dagar, men inte om man jobbar fler än 2 dagar i följd
=SUMMA(MIN(B1;AVKORTA(A1)+TIDVÄRDE("18:00"))-MAX(A1;AVKORTA(A1)+TIDVÄRDE("08:00"));OM(AVKORTA(A1)+TIDVÄRDE("08:00")+1>B1;0;MIN(B1;AVKORTA(B1)+TIDVÄRDE("18:00"))-(AVKORTA(B1)+TIDVÄRDE("08:00"))))*24

Ja, som du ser blir det snabbt ganska komplicerat.
Nytt inlägg
 2016-10-23 18:30
 

 Stort tack för svaret. Ska titta på om det går att använda ditt förslag för fler än två dagar. Ser ut som att formeln kan bli väldigt lång. Ofta kan det vara flera/många dagar mellan starttiden och sluttiden.

Nytt inlägg
 2016-10-24 07:32
 

 Behöver förtydliga också att jag har olika kolumner för datum och tid. Tycker att det blir tydligare att lägga in i dokumentet med olika kolumner samt att andra uträkningar blir enklare att utföra. Möjligtvis blir det kanske enklare att räkna ut totalt antal timmar som löper mellan flera dagar mellan 08.00 till 18.00.

Nytt inlägg
 2016-10-24 17:44
 
Ahhh, nu blev det lättare. hälften av formlerna ovan handlade ju om att plocka ut tiden.
Antar:
KolumnA = stardatum
KolumnB = starttid
KolumnC = slutdatum
KolumnD = sluttid

Man kan skriva "8:00" istället för TIDVÄRDE("8:00")
Det blir kortare, men kanske svårare att felsöka

Under arbetet antar vi att din målcell har formatet [t]
(Ctrl 1 -> tal -> anpassat). Då börjar inte Excel om från 0 när det blir fler än 24 timmar

Vi gör samma knorr som förut för att hitta start och slut "inom ramarna":
=(C2+MIN(D2;"18:00"))-(A2+MAX(B2;"08:00"))

Sen gör vi ett villkor, om slutdatum är större än startdatum så vill vi ta bort 6 timmar (kl 18 till midnatt) dvs 6/24 i tidsformat + tiden från midnatt t.om
avslut eller kl 0800 den sista extradagen
-OM((C2-A2)=0;0;6/24+MIN(D2;"08:00"))
Och om det är fler än en extradag så drar vi ifrån 14 timmar 14/24 (8 morgon+6 kväll) för varje extradag utöver den sista dvs
-OM((C2-A2)<2;0;(C2-A2-1)*14/24)

Slår man ihop allt så blir det
=(C2+MIN(D2;"18:00"))-(A2+MAX(B2;"08:00"))-OM((C2-A2)=0;0;6/24+MIN(D2;"08:00"))-OM((C2-A2)<2;0;(C2-A2-1)*14/24)

Eller så här om du vill att en timme skall vara =1 så att du kan använda det i formler direkt (då för du ändra cellformatet till tal, Ctrl+0).
=24*((C2+MIN(D2;"18:00"))-(A2+MAX(B2;"08:00"))-OM((C2-A2)=0;0;6/24+MIN(D2;"08:00"))-OM((C2-A2)<2;0;(C2-A2-1)*14/24))

Det här är bara en variant, jag är nästan säker på att den går att göra smartare med en mer renodlad Första dag/sista dag approach. Men vem orkar...
Nytt inlägg
 2016-10-26 19:24
 

 Jag får säga som tidigare, ett stort tack för hjälpen. Nu ser det riktigt bra ut. Tack!

Föregående Föregående
 
Nästa Nästa
ForumForumDiskussionerDiskussionerExcelExcelRäkna tid i ExcelRäkna tid i Excel

PNG32 PNG32
Excelforum drivs av Excelspecialisten som bedriver utbildning i Excel och VBA, tillhandahåller support och hjälp med Excel, utvecklar program i Excel. Är ni i behov av en konsult inom Excel, VBA eller VSTO, eller söker en excelkurs, kontakta oss.
Copyright 2013 ExcelSpecialisten XLS AB   Användarvillkor  Personliga uppgifter