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

Avancerad dag/tiduträkning

Rekommendera Poster

Dtrtoen

Hejsan,

Jag ska utveckla min produkionsplanering och vill få ut automatsikt vilken dag/tid en viss produkt är klar.

Hur får jag till formeln att inte räkna med timmar utanför arbetstiden ?

 

 

Input; 

Arbetstid mån-tors kl06-01(17h arbetstid inkl rast) , fredag kl06-15 (8h arbetstid inkl rast)

Exempel;

Starttid/datum 

*start fredag 2020-11-06 kl06:00

*+ Produktionstid 50h

*= klar 2020-11 kl15:00


Mvh nybörjare 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

Här får du en Icke-lösning så att du inte slösar tid på det:

Det går inte på något enkelt sätt eftersom du har 3 olika "dygnstyper" (produktionstimmar= 17: 8: 0).

I vanliga fall hade du använd ARBETSDAGAR() men den klarar bara att ta bort helger.

 

Men vi kan ta lite byggstenar: 

Antag att din tid/datum står i A1 och timmarna i B1

2020-11-06 06:00 50

I excel är en dag=1 och ett timme= 1/24

Om du hade producerat 24 timmar/dygn så hade det här gett sluttiden

=A1+(B1/24)    2020-11-08 08:00

Om du/ni bara kan arbeta 17 timmar om dygnet så borde det här bli rätt.

=A1+(B1/17)    2020-11-09 04:35

 

Och om du inte vill jobba på helgen så kan du får reda på rätt dag med:

=ARBETSDAGAR(A1;B1/17)   2020-11-10 00:00

Som hoppar över helger men bara ger dagen (heltalsdelen). För att få timmarna (+ 6 timmar i starttid)  så får du lägga på resten (som inte blev en hel arbetsdag på 17 timmar):

=ARBETSDAGAR(A1;B1/17)+KLOCKSLAG(6;0;0)+REST(B1;17)/24  2020-11-10 22:00

Så då har vi hanterat 17 timmar och 0 timmar (helger). Problemet är dina fredagar som kräver en helt egen lösning.

Det borde gå att lösa relativt lätt med VBA (makro). Annars måste du nog göra en massa hjälpkolumner eller matrisformler där varje dag behandlas separat och det är lite för soligt ute för att jag skall klara av det idag. Men om någon på eforum drabba av en massa energi: Finns det en gräns för hur lång produktionstiden kan vara?

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Dtrtoen

Hej,

 

tack för tipset. Jag ska testa denna variant. 
 

mvh

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

Lycka till. Bifogar en fil där du kan se hur lösningen kan se ut med hjälpkolumner. Obs att det bara gäller ett enda projekt.

 

B1 och B2 är indata. Cell B9 är resultatet. Allt annat är hjälp och stöd för att gå fram det du vill. Det bordet gå att få in allt på en rad, men jag ork int

 

Du har alltså valt ett ganska krångligt problem som "nybörjarprojekt"...

Bok1.xlsx

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

Ok, det här var ett irriterande problem. Se bifogad fil för exempel där

en produkt= en rad (och en massa hjälpkolumner).

Förutsätter att produktionen sätter igång kl 06:00 första dagen eftersom jag inte vet när rasterna är (arbetsdagens slut -starttid blir fel). Tar inte heller hänsyn till raster sista dagen av samma skäl

Bok1_2.xlsx

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Dtrtoen

Tack, jag anser mig själv som nybörjare men såklart vill jag ha avancerade lösningar. Jag kan bifoga mitt dokument när jag testat så får du se vad mitt projekt gäller,

 

mvh

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Dtrtoen
2020-11-22 19:24, skrev MH_:

Ok, det här var ett irriterande problem. Se bifogad fil för exempel där

en produkt= en rad (och en massa hjälpkolumner).

Förutsätter att produktionen sätter igång kl 06:00 första dagen eftersom jag inte vet när rasterna är (arbetsdagens slut -starttid blir fel). Tar inte heller hänsyn till raster sista dagen av samma skäl

Bok1_2.xlsx 18 kB · 1 download

Hej,

 

Kolla fliken prodplanering, H , K , M3.

H är tiden det tar att producera en produkt. Nu står det i texten tt:mm men det stämmer inte.

 

MvhProduktionsplanering.xlsx

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

=J5/I5

Ger antal timmar i decimalform. Dvs 3,5 =3:30

 

Om du vill uttrycka det i Excels tidsformat så får du dividera med 24 

=(J5/I5)/24

och ändra tal-visningsformatet till timme:minut [Ctrl]+3

Eller. Ännu hellre

[Ctrl]+1 

välj Tid 13:30

sen går du till Anpassat och ändrar

Från tt:mm;@

till [tt]:mm;@

Då kommer timmarna att kunna vara mer än 24:a utan att excel tolkar det som en ny dag och börjar om från 0 (beräkningarna skulle fortfarande bli rätt, men det ser fel ut.)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Dtrtoen

Ja det får jag till men nu åter igen tillbaka till det kluriga. Hur får jag till att räkna bort timmar utanför schematid. Tyvärr fi ck jag inte till din modell i min fil.

 

Mvh

Produktionsplanering.xlsx

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

Om produktionstimmarna är så låga som i ditt exempel (i förhållande till skiftlängden) så behöver man kanske inte krångla med mer än ett dagsbyte? (är det rimligt att anta ingen sågning kommer att sträcka sig över 3 dagar)? Det kräver nästan att någon stolle (du?) sätter igång en 20 timmars-sågning på torsdagskväll

 

Exempel i din cell K5

 

HELTAL(M3) är datumet utan tidsdelen, dvs midnatt "idag"

HELTAL(M3)+23/24 är kl 23:00 idag

 

Om Starttid+sågtid fortsätter efter kl 23 (kl 01- minus 2 timmars raster). Så skall överblivna timmar skickas till nästa dag. Dessutom lägger man på 6 timmar för att få rätt starttid dagen efter + en dag med hjälp av ARBETSDAGAR() (för att ta hand om helger)

 

Men då måste man ha egna regler för Fredagar och kolla fram till 14:00 istället för 23:00 (15- i timmes rast)

HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24))

 

så villkoret blir:

OM((M3+H5)>(HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24))....

 

Om det inte blir något skifte så tar man bara

M3+H5

Annars får det bli en halvkrånglig:

+ARBETSDAGAR(M3;1) lägger på en dag

+6/24 är för att  starta nästa dag kl 06:00

och den här delen lägger på de timmar som "blev över" när dagen innan har fått sina dagar

(M3+H5)-(HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24))

 

 

En rad

=OM((M3+H5)>(HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24));(M3+H5)-(HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24))+6/24+ARBETSDAGAR(M3;1);M3+H5)

 

 

Produktionsplanering MH.xlsx

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Dtrtoen
2020-11-24 22:41, skrev MH_:

Om produktionstimmarna är så låga som i ditt exempel (i förhållande till skiftlängden) så behöver man kanske inte krångla med mer än ett dagsbyte? (är det rimligt att anta ingen sågning kommer att sträcka sig över 3 dagar)? Det kräver nästan att någon stolle (du?) sätter igång en 20 timmars-sågning på torsdagskväll

 

Exempel i din cell K5

 

HELTAL(M3) är datumet utan tidsdelen, dvs midnatt "idag"

HELTAL(M3)+23/24 är kl 23:00 idag

 

Om Starttid+sågtid fortsätter efter kl 23 (kl 01- minus 2 timmars raster). Så skall överblivna timmar skickas till nästa dag. Dessutom lägger man på 6 timmar för att få rätt starttid dagen efter + en dag med hjälp av ARBETSDAGAR() (för att ta hand om helger)

 

Men då måste man ha egna regler för Fredagar och kolla fram till 14:00 istället för 23:00 (15- i timmes rast)

HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24))

 

så villkoret blir:

OM((M3+H5)>(HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24))....

 

Om det inte blir något skifte så tar man bara

M3+H5

Annars får det bli en halvkrånglig:

+ARBETSDAGAR(M3;1) lägger på en dag

+6/24 är för att  starta nästa dag kl 06:00

och den här delen lägger på de timmar som "blev över" när dagen innan har fått sina dagar

(M3+H5)-(HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24))

 

 

En rad

=OM((M3+H5)>(HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24));(M3+H5)-(HELTAL(M3)+OM(VECKODAG(M3;2)=5;14/24;23/24))+6/24+ARBETSDAGAR(M3;1);M3+H5)

 

 

Produktionsplanering MH.xlsx 93 kB · 0 downloads

Tack för hjälpen :)

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...