Just nu i M3-nätverket
Gå till innehåll

Kontrollera vilotider


Miky
 Share

Go to solution Solved by Miky,

Rekommendera Poster

Har ett problem jag inte lyckas lösa i mitt excelprogram.

Jag har en lista med flera körpass som mina chaufförer har kört.

Datum|Start|Slut|Förare|m.m.
2013-10-01|04:03|13:00|1|...
2013-10-02|05:35|15:02|1|...
2013-10-03|01:03|10:34|1|...
2013-10-04|19:09|05:45|1|...

Det jag vill få fram är ifall chauffören har hållt sig till sina vilotider. Och då även med hur mycket som vilotiden eventuellt har brutits med.
Vilotiderna som ska hållas är enligt lag:
3§ Föraren ska ha haft en dygnsvila på minst elva timmar under den tjugofyratimmarsperiod som föregår varje tidpunkt då föraren utför transporter. Dygnsvilan får delas upp i två perioder varav den ena skall vara minst åtta timmar.

Jag har lyckats med att räkna ut hur länge som föraren har arbetat den senaste 24-timmarsperioden, med hjälp av formlerna från //eforum.idg.se/topic/221104-arbetstimmar-l%C3%B6n-och-ob-till%C3%A4gg/, och iom detta även kunna räkna ut hur många timmar som chauffören har vilat under denna period. MEN, som ni läste i lagparagrafen ovan så kan man dela upp sin vila i två perioder där den ena skall vara minst 8 timmar. Här börjar mina svårigheter, jag måste ju på något sätt kunna kolla de två längsta viloperioderna den senaste 24-timmarsperioden för att se att de är tillräckligt långa. Hur ska jag lyckas med detta?

 

/Mikael

Länk till kommentar
Dela på andra webbplatser

Det här blir nog en flerstegsraket.

1: Identifiera en tidpunkt från vilken detta ska kontrolleras. (i princip alla tidpunkter i schemat)

2: Identifiera/hitta arbetat tid resp vila inom 24 timmar bortom detta

3: Göra de två kontroller som krävs, dvs sammanlagd vila/arbeta inom dessa 24 timmar samt om  det finns en viloperiod på åtta timmar inom denna.

 

Det du har är enbart körpass? Man kan anta att all tid som inte finns registrerad där är vilotid?

Länk till kommentar
Dela på andra webbplatser

1. Jag har valt att fokusera på när passen slutar och titta 24 timmar tidigare

2. Som jag skrev så har jag lyckats räkna ut hur många timmar totalt som är arbetat respektive vila.

3. Det är att göra de kontrollerna som jag har problem med. T.ex. så kan ju den sammanlagda vilan vara 13 timmar. Är den uppdelad på 9 timmar och 4 timmar så är det ju ok (mer än 8 timmars vila). MEN, är den uppdelad på 7 timmar och 6 timmar så är det ju inte OK. Detta vill jag på något sätt kunna få fram. Men vet inte hur jag ska lösa detta.

 

För beräkningarna så utgår jag ifrån att all annan tid är vila.

Länk till kommentar
Dela på andra webbplatser

Bara för att vara den, så jag slipper bygga om allt det du skapat kan du lägga upp ett exempelark med tider och förväntat resultat samt dina existerande tidsberäkningar.

Länk till kommentar
Dela på andra webbplatser

Absolut ska du vara "den". :)

Borde jag ju tänkt på... :)

 

Har fixat ett exempelark med en massa kommentarer så att den snabbt går att förstå.

Tabellen längst ned är som jag vill ha det med resultaten.

vilotider.xlsx

Länk till kommentar
Dela på andra webbplatser

Ajaj, icke kronologisk lista....Då kommer det krävas en del tankearbeta, det måste nog till en matrisformel eller en hel bunt av formler.

Och det ska vara en rullande 24-timmarsperiod som man ska titta på.

 

dvs startar en körning kl 15 den 21 i en månad ska man titta till kl 15 den 20 om det inom denna period har funnits en vila längre än åtta timmar.

Helt enkelt:

Hitta alla körningar som antingen startat eller slutat det senaste dygnet, få dem staplade kronologiskt och räkna ut vilan däremellan, ta ut max ur detta och kolla om denna är större än åtta.  Okej, går men...

 

Nästan så jag säger VBA-kod på detta, krävs nästan en dynamisk hantering tror jag.

Mycket enklare om kronologisk lista. Mycket. Då bara att för varje rad, varje pass, räkna ut vilan mot föregående och då enkelt att kolla om den varit tillräcklig.

 

Hur många körningar per dygn kan det vara? Hur många måste formlerna/koden kunna hantera?

Länk till kommentar
Dela på andra webbplatser

Mmh, lite trevande... i stil med dessa matrisformler...

se fil

 

Bygger på att du har hela datum, dvs datum och klockslag i en cell. Denna räknar ut två möjliga vilotider inom närmsta dygnet från en starttid.

 

Var inte så svårt om nu detta blev rätt.

 

Notera att det är matrisformler, man kan innesluta dem i PRODUKTSUMMA om man vill iofs för att säkra inmatningen lite.

 

 

TidKoll.xlsx

Länk till kommentar
Dela på andra webbplatser

Ursäkta det tog lite tid, men har nu tittat på den filen du bifogade. Och man har lärt sig flera sätt att skriva olika formler m.m., det tackar jag för... :). Din lösning fungerar perfekt... om man inte har för många körpass per dag och chaufför. Alltså den fungerar som den ska om den vilan som chauffören tar är max 2st alternativt de två största viloperioderna är mot slutet. Skulle passen vara såsom nedan listade så blir det fel vila listad. Att köra nedan pass är helt ok enligt vilotidsreglerna men inte enligt den lösningen du presenterade.

Datum|Start|Slut|Förare|m.m.
2013-10-01|02:00|03:00|1|... Vila: 24:00 och 00:00 Skulle vara: 24:00 och 00:00

2013-10-01|04:00|05:00|1|... Vila: 01:00 och 22:00 Skulle vara: 01:00 och 22:00
2013-10-01|06:00|10:00|1|... Vila: 01:00 och 01:00 Skulle vara: 22:00 och 01:00
2013-10-01|11:00|14:00|1|... Vila: 01:00 och 01:00 Skulle vara: 22:00 och 01:00

/Mikael

Länk till kommentar
Dela på andra webbplatser

Nä, där har du ju fyra pass på ett dygn, det jag skapade klarade bara två pass... men enkelt att bygga ut för att klara fler pass.

 

Blir det här mer rätt?

Lite osäker är jag men tror jag tänkt rätt. OBS! Denna koll visar den längsta vilan senaste 24-timmarna. Du kan även summera över vila 1 till vila 4 för att få summan.

Behöver du stöd för fler pass? Kopiera ett helt paket, Start4 till Vila4, och döp om till steg 5.

Öka sedan MAX-formeln så att den tar med även steg 5.

 

Har lagt in en tabell men ej anpassat alla formler för tabell än. Först när du skapat alla steg rekommenderar jag att du gör det, dvs byter ut de referenser som nu är låsta till kolumnnamn och liknande så att hela alltet blir dynamiskt.

 

Har gjort om formlerna till PRODUKTSUMMA. Enklare att hantera än rena matrisformler.

Och ett sista OBS:

Matrisformler kan vara ganska komplexa att beräkna. Kanske att man i detta fallet bör lägga in en OM-sats på varje steg som gör att det inte beräknas om det inte behövs, om föregående steg returnerat noll. Detta för att många matrisformler kan slöa ned en bok ganska rejält.

Varje sparad beräkning är då en bra beräkning.

 

TidKoll.xlsx

Länk till kommentar
Dela på andra webbplatser

  • Solution

Har nu utifrån idéer och tips jag fått av att läsa dina lösningar lyckats skapa en som fungerar ännu bättre. Har visserligen inte testat att lägga in den i det "skarpa" dokumentet, men de tester jag gjort så verkar den beräkna tiderna korrekt. Det som är kvar nu är att få in så den skiljer på olika chaufförer.

 

Vi får se senare om den slöar ner dokumentet för mycket, men jag vet inte riktigt hur jag ska få in OM-satser som du tipsar om. Rent prestandamässigt, är det någon skillnad på {matrisformler} och Produktsumma-formler?

 

 

TidKoll#2.xlsx

Länk till kommentar
Dela på andra webbplatser

Produkstumma är bara ett sätt att maskera matrisformler. vet faktiskt inte om det blir någon skillnad i vad det kostar att utföra beräkningen mellan de två.

 

Tittar lite på din fil, den där räknar väl inte rätt? Jag menar i kolumn L kan det ta vila från efter det pass du gör beräkningen på.

 

Men det är alltid lite svårt att sätta sig in i vad matrisformler gör.

 

Skilja på chaufförer? Bara att lägga in en till SANT/FALSKT kontroll och multiplicera denna med den existerade.

{ =MAX((A1:A7=1)*(B1:B7<8)*C1:C17) }

typ.

Länk till kommentar
Dela på andra webbplatser

Ok.. då kör jag på det alternativet som känns mest smidigast.

 

Kolumn L är en skräpkolumn som jag använde när jag testade lite olika lösningar. Glömde bara ta bort den. De egentliga beräkningarna är i de två gula rutorna.

 

Att få den att skilja på chaufförer lär definitivt inte vara några problem bara att göra precis som du beskriver... :)

Länk till kommentar
Dela på andra webbplatser

Okej.

Jag orkar inte riktigt idag sätta mig in i vad dina matrisfunktioner gör ska medges men ger de rätt resultat är jag nöjd. Och du med hoppas jag.

 

Lite enklare blir det om du formatera om allt som tabeller och använder tabellens namn.

Apropå matrisformler, det som gör dem komplexa är alla jämförelser.

 

En titt på formeln i Q har du fyra jämförelser, tre multiplikationer och två additioner

Det ger alltså för varje rad i din tabell nio operationer (av lite skild komplexitet).

Har du en tabell med tio rader blir det 90 operationer per instans av formeln, dvs 900 operationer för tabellen.

Har du en tabell om hundra rader, 900 operationer per instans, 90 000 operationer i tabellen,  för denna kolumn.

Sedan har du motsvarande i andra kolumner.

 

 

Du förstår att det snabbt kan bli ganska jobbigt för Excel därav vikten att begränsa beräkningarna i den mån det går.

Länk till kommentar
Dela på andra webbplatser

  • 5 years later...

Hej
Kan inte öppna filen i chatten  ovan (har excel 2007) men skulle behöva beräkningen. Är det fel på programmet eller filen?

Får svar enl bilden:

Excel 2007-fel.png

Länk till kommentar
Dela på andra webbplatser

Tyvärr har en hel del filer i gamla inlägg försvunnit i samband med uppdatering av forumplattformen.

Detta är så gammal tråd att jag inte minns eller har kvar filen/formlerna men jag kan tipsa dig om att titta in i tråden det länkas till i första inlägget, där finns det i slutet av tråden ett fungerande ark med mängder av tidsberäkningar.

 

Länk till kommentar
Dela på andra webbplatser

Tack så jätte mycket.

Nu kunde jag öppna den.

Få se om jag förstår mig på den...

Med vänliga hälsningar

craciun40

 

Länk till kommentar
Dela på andra webbplatser

 Share

×
×
  • Skapa nytt...