|
Gondi |
Medlem sedan: 2023-03-28
341 inlägg
|
|
|
Hej igen Ken!
Det är inget fel i formeln utan i inmatningarna av tiderna.
Eftersom den 2 april (2023-04-02) var en söndag kan man inte ange starttiden som 8:00 eftersom det är ingen som arbetar då = ogiltig starttid. Anger du istället kl 10:00 som är en giltig starttid på en söndag räknar formeln rätt.
Exakt samma sak gäller för 2023-04-03, både kl 7:32 och 7:52 är utanför arbetstid och är därför ogiltiga tidsangivelser. Det är ju ingen som kan öppna eller stänga ett ärende när det inte är någon som arbetar, eller hur..? ;-)
För att lösa dessa undantag använder man sig av Excels Dataverifieringsfunktion under menyalternativet "DATA", där man kan blockera ogiltiga datum- och/eller tidsangivelser.
|
|
|
|
| |
|
Kendo |
Medlem sedan: 2023-03-28
28 inlägg
|
|
|
Hej,
Då förstår jag! Jag trodde att formeln kunde ignorera tidsangivelser utanför giltig star/sluttid (vilket är den tid som ska beräknas, även om ärenden i viss utsträckning kommer att hanteras utanför den tiden som jag vill beräkna).
Jag ska kika på Dataverifieringen och se om jag kan blocker med hjälp av den. Tack igen! :)
Mvh
Ken
|
|
|
|
| |
|
Gondi |
Medlem sedan: 2023-03-28
341 inlägg
|
|
|
Hej igen Ken!
Det är inte helt enkelt att först ha ett "regelverk" som en formel följer, och sen i nästa stund "inte" ha ett regelverk. Hur ska formeln kunna räkna rätt då..?
Här kommer några exempel som skapar problem.
- Start- och sluttid är båda utanför handläggningstiden, vad blir den totala handläggningstiden då..?
- Starttiden börjar efter avslutad handläggningstid dagen innan och avslutas 8:00 vardagen efter, vad blir handläggningstiden då, 0 minuter, eller..?.
- Ett ärende påbörjas kl16:00 på en helgdag och stängs kl 16:30 samma dag, vad blir handläggningstiden då, 0 minuter eller 30minuter..?
Om man tänker sig att man ska använda dessa uträkningar till något viktigt - som t.ex debitering - är det ju extremt viktigt att beräkningarna alltid går att lita på och blir korrekta.
Så du får nog "klura lite" på om du förutom "handläggningstiden" också måste införa en variabel för "arbetstid" under vilka tider på dygnet exempelvis en Helpdesk kan öppna ärenden, men allt annat än prio "1 Låg" kommer inte börja handläggas innan nästa skift påbörjar sin ärendehantering.
|
|
|
|
| |
|
Kendo |
Medlem sedan: 2023-03-28
28 inlägg
|
|
|
Ja det är klurigt detta, men jag önskar att få till det enligt nedan svar. Jag har provat lite med Dataverifieringen men om det vore möjligt med en formel hade det varit fantastiskt.
Vänligen
Ken
- Start- och sluttid är båda utanför handläggningstiden, vad blir den totala handläggningstiden då..?
- Den totala handläggningstiden ska sammanställas av den eventuella tid som har passerats av den definerade handläggningstiden. Dvs, har ingen av den tid som har passerats från start till slut rymts inom den definierade handläggningstiden för vardagar heller helg ska handläggningstiden beräknas som 0.
- Starttiden börjar efter avslutad handläggningstid dagen innan och avslutas 8:00 vardagen efter, vad blir handläggningstiden då, 0 minuter, eller..?.
- Precis då ska den vara 0
- Ett ärende påbörjas kl16:00 på en helgdag och stängs kl 16:30 samma dag, vad blir handläggningstiden då, 0 minuter eller 30minuter..?
- Även det ska betraktas som 0 eftersom handlägningstiden för helg är definierad från 10:00 till 14:00. Den enda tid som ska beräknas är den som är definierad av handläggningstiderna för vardagar och helger.
|
|
|
|
| |
|
Gondi |
Medlem sedan: 2023-03-28
341 inlägg
|
|
|
Efter mycket "pillande och klurande" tror jag nog att jag fått till formeln som du vill ha den. Stort tack till @anonymous för “MAX/MIN-tricket”, det gör ju formeln betydligt kortare än att använda sig av en massa “OM”-satser.
Man skulle kunna göra formeln betydligt mer läsbar om man använder sig av tabellreferenser och Excels namnhanterare för återkommande referenser. Dock har jag valt att inte göra det för då blir det ännu fler funktioner att förklara.
I stora drag fungerar formeln så här.
- I första steget utvärderar den om det är fråga om ett Prio “1 Låg” ärende. Det är den absolut enklaste beräkningen.
- I steg två räknar formeln ut hur många hela arbetsdagar det finns inom tidsspannet och multiplicerar detta antal med antal handläggningstimmar under en vardag.
- I steg tre räknar formeln ut hur många hela helgdagar det finns inom tidsspannet och multiplicerar detta antal med antal handläggningstimmar under en helgdag.
- Nästa steg täcker in ett “specialfall” där formeln beräknar handläggningstiden om start- och sluttid infaller under samma dygn.
- I steg fem så räknas antalet handläggningstimmar ut under den första dagen.
- I i det sista steget så räknas antalet handläggningstimmar ut under den sista dagen.
De enskilda handläggningstiderna ovan summeras av formeln under varje steg till en total handläggningstid som tar hänsyn till både helgdagar och olika handläggningstider.
=OM(ANTAL.OM(A2;"*1 Låg*");(D2+E2-(B2+C2));MAX(NETTOARBETSDAGAR(B2+1;D2-1;Helgdagar!$A$2:$A$14);0)*($J$2-$I$2)+(MAX(DAGAR(D2;B2+1);0)-MAX(NETTOARBETSDAGAR(B2+1;D2-1;Helgdagar!$A$2:$A$14);0))*($J$3-$I$3)+OM(B2=D2;MAX(OM(NETTOARBETSDAGAR(B2;B2;Helgdagar!$A$2:$A$14);MIN(E2;$J$2)-MAX(C2;$I$2);MIN(E2;$J$3)-MAX(C2;$I$3));0);OM(NETTOARBETSDAGAR(B2;B2;Helgdagar!$A$2:$A$14);MAX(C2;$J$2)-MAX(C2;$I$2);MAX(C2;$J$3)-MAX(C2;$I$3))+OM(NETTOARBETSDAGAR(D2;D2;Helgdagar!$A$2:$A$14);MIN(E2;$J$2)-MIN(E2;$I$2);MIN(E2;$J$3)-MIN(E2;$I$3))))
Och så här räknar den i mitt Excelark.
@Ken, du får testköra lite och återkoppla.
|
|
|
|
| |
|
Kendo |
Medlem sedan: 2023-03-28
28 inlägg
|
|
|
God morogn, och STORT TACK Gondi! :D
Nu sitter den som en smeck och alla mina verifieringsförsök lyckas, imponerande!
Låt säga att jag i framtiden skulle vilja mäta Prio "2 Låg" på samma sätt som Prio "1 Låg", dvs dygnet runt. Kan jag kompletter/skriva om första delen på något smidigt sätt då?
Mvh
Ken
|
|
|
|
| |
|
Gondi |
Medlem sedan: 2023-03-28
341 inlägg
|
|
|
Kul att det fungerar som du vill Ken!
Man kan göra på flera sätt för att matcha på flera olika kriterier, men det enklaste är kanske att fortsätta på samma spår med funktionen ANTAL.OM() eftersom den till skillnad från funktionen OM() stödjer wildcard (* och ?) vid matchning inom textsträngar.
Så här skulle du kunna börja formeln om du vill matcha på text som antingen innehåller "1 Låg" eller "2 Låg".
=OM(ANTAL.OM(A2;"*1 Låg*")+ANTAL.OM(A2;"*2 Låg*");.....
Lycka till!
|
|
|
|
| |
|
Kendo |
Medlem sedan: 2023-03-28
28 inlägg
|
|
|
Snyggt, och ännu en gång, stort tack! Fantastiskt med hjälpsamma människor som dig.
|
|
|
|
| |
|
Gondi |
Medlem sedan: 2023-03-28
341 inlägg
|
|
|
Tack Ken!
Stort tack till dig också för den intressanta utmaningen, och till Anonymous för att han delade med sig av MIN/MAX-knepet! Det kommer jag själv ha mycket nytta av.
|
|
|
|
| |
|
Kendo |
Medlem sedan: 2023-03-28
28 inlägg
|
|
|
Hej Gondi, upptäckte något som jag tycker är lit emärkligt idag.
Jag har lagt till en vilkordstyrd formatering och en kommentar baserat på det returnerade värdet, dels ska ett returnerat värde om "00:00:00" bli rött. Det märkliga är bara att det fungerar när "Helgdagar i N4 och O4 är satt till 00:008, se bilder) Men om jag exempelvis sätter N4 till 10:00 och O4 till 14:00 blir resultatet i kolumnen J korrekt men vilkoren fungerar inte trots att resultatet är 00:00:00 i båda fallen. Någon ide vad det kan bero på?
Mvh
Ken
|
|
|
|