Avatar billede ramses2015 Nybegynder
04. maj 2015 - 11:27 Der er 3 kommentarer

Udregning af tillæg i et 24 timers skift.

Er der nogen der kan hjælpe med en formel til beregning af tillæg i et 24 timers skift.
Problemet er at jeg bliver ved med at få et negativt eller et skævt resultat, da jeg møder på forskellige tidspunkter samt har 8-9-10 timers vagter alle ugens 7 dage.
Disse mødetider vil så også have forskellige tillæg på samme vagt.

Jeg har mødetid i kolonne E og gå hjem tid i kolonne F
Tiden 01:00-2400 format

Tillæg ser således ud
Før kl 06 - 111,80 (KUN hvis man møder 05).
Aften kl 18 -06 - 38,90
Søn/helligdag (lørdag efter 14:00) - 83,25

Det har ikke rigtigt lykkes mig at finde en formel der passer
Avatar billede folj Forsker
06. maj 2015 - 14:20 #1
Lige et par hurtige spørgsmål om de scenarier der kan forkomme...
1. Forekommer det ikke at du møder ind i et døgn og først går hjem i næste døgn?
Døgn starter kl 00:00 og slutter 23:59. Jeg kunne forstille mig at nogen møder ind eksempelvis kl 23:00 i et døgn, og går hjem kl 07:00 i det næste døgn.

2. Har du noget i dit excel-ark der viser om dagen er en søgne-helligdag (altså en skæv helligdag), eller skal det også regnes ud. Det kan evt godt regnes ud, men er lidt langhåret.
Avatar billede folj Forsker
06. maj 2015 - 14:54 #2
Kan der også forkomme et scenarie hvor medarbejder møder ind og først går hjem mere end 24 timer efter mød?tidspunktet.
Avatar billede folj Forsker
06. maj 2015 - 16:28 #3
Jeg foreslår at du laver en brugerdefineret function.

Den skal fodres med et par input, som den så beregner på og returnerer en værdi.

jeg ka se at vi får brug for følgende input:
1. den dato der spørges på
2. mødetidspunkt
3. gå-hjemtidspunkt
4. evt. en værdi der fortæller om det er en skæv helligdag eller ej. (hvis ikke vi selv skal beregene det i en separat function)
Har du allerede kendskab til VBA-programmering (VBA= Visual Basic for Applications)?
VBA skal ikke forveksles med programmeringssproget Visual Basic.

Jeg har lavet den første spæde start til en brugerdefineret function til at beregne tillæg.
-----VBA-Kode-----

Function AdditionalPay(Requestdate As Date, MeetTime As Date, HomeTime As Date)
' function skal teste om MeetTime til Hometime udløser noget tillæg

AdditionalPay = 0 ' sætter defaultværdi til 0 , så function returenerer 0 hvis der ikke blev fundet nogen tillæg på den aktuelle foresørgsels-dag

  If MeetTime > HomeTime Then ' hvis mødetidspunkt er højere en gå-hjem tidspunkt
    MeetDateTime = Requestdate + MeetTime
    homeDateTime = Requestdate + 1 + HomeTime ' Requestdate + 1 fordi det dato har skiftet når medarbejder går hjem
    WorkHours = DateDiff("h", MeetDateTime, homeDateTime)
    AdditionalPay = "Nattevagt " & WorkHours & " timer"
  Else
    MeetDateTime = Requestdate + MeetTime
    homeDateTime = Requestdate + HomeTime
    WorkHours = DateDiff("h", MeetDateTime, homeDateTime)
    AdditionalPay = "Dagvagt/aftenvagt " & WorkHours & " timer"
  End If

End Function
-----/VBA-Kode-----
Som functionen er nu er den ikke så brugbar andet end testformål - vi kan se at den beregner på de indtastede tider.
Som du ser, så er den endnu holdt helt simpel. indeholder kun en enkelt if-sætning, og der skal sammensættes en hel række if-sætninger til at tjekke for alle de mulige scenarier. Det kan godt blive lidt langhåret, men vigtigst af alt er at der bliver spurgt i den rigtige rækkefølge i if sætningerne, for der hvor der først er "Bingo" bliver valgt, og så går den evt. ikke videre til alle de andre mulige scenarier...

Hvis du hvor du gør det så kopier koden ind i et modul, og så kan du kalde functionen AdditionalPay på samme måde som du gør med alle andre excel-funktioner.

Hvis ikke du ved hvor vba-koden skal kopieres ind så hjælper jeg gerne yderligere.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester