Avatar billede d4s Novice
07. september 2004 - 08:02 Der er 24 kommentarer og
2 løsninger

udregn aftensarbejdstid i excel

jeg har et regneark med en 4-ugers arbejdsplan, hvor dagene er vandret og medarbejderne lodret.

Hver medarbejder fylder 2 rækker og 2 kolonner.
Hver dag fylder 2 kolonner.

Uddybende forklaring:

medarbejderinfo: (/ adskiller vandrette celler)
antal fridage/navn
timer pr. uge/timer ialt

daginformation: (/ adskiller vandrette celler)
mødetid/fritid (eks. 14/23)
Afspadsering/antal timer (fritid-mødetid)

jeg skal nu tælle alle aftentimerne, dvs. alle vagter hvor en medarbejder arbejder efter 17.00.

jeg bruger følgende formel til at finde alle vagter, hvor personen har fri kl. 22:
=TÆL.HVIS(C4:BF4;"22")
Det samme gør jeg for kl. 23
=TÆL.HVIS(C4:BF4;"23")

Da vagterne nogen gange er på 8 og andre gange på 9 timer, giver det mig antal aftenvagter, men ikke antal aftenTIMER. Løsningen duer derfor ikke.

Under 22 og 23 står altid antal timer. Hvordan får jeg fat på det tal og lægger det sammen med de andre fundne tal? Det vil jo give mig antal aftentimer.

Håber nogen kan hjælpe, for jeg har rodet med det her i 3 måneder uden at komme videre. Jeg overvejer kraftigt at kode et program til at løse opgaven, da min viden om Excel åbenbart er alt for begrænset, men prøver lige eksperten inden jeg kaster mig ud i det :)
Avatar billede d4s Novice
07. september 2004 - 08:04 #1
Tidligere var en aftenvagt altid på 8 timer, og derfor kunne jeg bruge TÆL.HVIS til at finde antal vagter og gange antallet med 8. Den går ikke mere, da jeg nu har 13-22, 14-22, 14-23 og 15-23 vagter.

Jeg modtager også gerne forslag til forbedring af opbygningen af regnearket. Det er jo ikke sikkert at min måde er den smarteste.
Avatar billede jkrons Professor
07. september 2004 - 09:33 #2
Jeg antager at du har sluttiderne (22/23) i 4. række og timetallene i 5. række. Så vil denne formel give dig det samlede timetal for de dage, hvor der er arbejdet til kl,. 22 eller 23:

=SUMPRODUKT((C4:BF44=22)*(C5:BF5))+SUMPRODUKT((C4:BF4=22)*(C5:BF5))

Det burde løse dit problem.
Avatar billede jkrons Professor
07. september 2004 - 09:34 #3
BF44 skal selvfølgelig være BF4. Undskyld.
Avatar billede jkrons Professor
07. september 2004 - 09:36 #4
Og nu kan jeg slet ikke rammer tasterne. Der skal stå 23 i den sidste sumprodukt.

Her er den rigtige formel:

=SUMPRODUKT((C4:BF4=22)*(C5:BF5))+SUMPRODUKT((C4:BF4=23)*(C5:BF5))
Avatar billede d4s Novice
07. september 2004 - 16:55 #5
jeg får bare #VÆRDI! når jeg prøver formelen og kan ikke fejlfinde den selv, da jeg ikke forstår den. Kan det tænkes at den prøver at gange med afspadseringskoden som f.eks. er A7 eller A1?
Avatar billede jkrons Professor
07. september 2004 - 17:06 #6
Det er muligt. Jeg kender jo kun regnearket fra din beskrivelse.

Her frorudsætter jeg, at du fx har følgende stående i række 4 og 5
22      22      23        22      23        22    23
8        8      9        8        8        8      9

eller noget der ligner. Der kan selvfølgelig i begge rækker stå andet end hhv. 22/23 og 8/9. Formelen tager så alle de celler i fjerde række, der indeholder 22. Finder de celler, der står nedenunder og lægger disse tal sammen. Det gør den også for så vidt angår de celler i rækek 4, hvor der står 23. Til sidst lægger den alle timerne for 22 og 23 sammen.
Avatar billede jkrons Professor
07. september 2004 - 17:09 #7
Hvis afspadseringskoden også står i samem celle som timetallet vil formlen ikke virke. Måske kan man få den til det alligevel, men så skal jeg vide lidt mere om, hvad ders tår/kan stå i de pågældende celler.
Avatar billede d4s Novice
07. september 2004 - 17:47 #8
Hvis vi tager os to som eksempel, står der:
  /        / Mandag  / tirsdag  / onsdag  / torsdag/
8 / jkrons / 14 / 22 / fri /    / 15 / 23 /  6 / 12 /
37 / 148    /    /  8 /    /  0 / A1 /  8 /    /  6 /
8 / d4    /  6 / 12 / 14  / 22 / 13 / 22 / 15 / 23 /
37 / 148    /    /  6 /    /  8 /    /  9 /    /  8 /

Det betyder:
jkrons har 8 fridage i alt (på fire uger)
jkrons arbejder man 14-22, tirs fri, ons 15-23 A1 (afspadserer men tæller stadig som 8 timer) tors 6-12
d4 har 8 fridage i alt (på fire uger)
d4 arbejder man 6-12, tirs 14-22, ons 13-22 og tors 15-23. Det er 6+8+9+8 timer, men kun 8+9+8 skal tælles som aftentimer.

Jeg er ikke sikker på at jeg har gennemskuet din formel, da min viden om excel er begrænset, men jeg gætter på at den bla. tager 15 tallet udfor dit navn og ganger med A1 og får derfor en fejl. Har jeg gættet rigtigt eller går den kun efter de kolonner, hvor der står 22 eller 23?
Avatar billede d4s Novice
07. september 2004 - 17:48 #9
hvordan har du lavet så fine mellemrum?
Avatar billede jkrons Professor
07. september 2004 - 17:49 #10
Med mellemrumstasten ;-) Jeg kigger lige på sagen og vender tilbage.
Avatar billede jkrons Professor
07. september 2004 - 18:12 #11
OK, her er en forklaring på fejlen. SUMPRODUKT finder, som navnet antyder summen at nogle produkter. Når der i dette tilfælde står bogstaver i nogle af cellerne, kan den selvfølgelig ikke regne den ud :-) Vi må derfor først teste på, om det der står i cellen er et tal, ellers skal det ikke indgå i beregningen. Det er lidt kompliceret med en SUMPRODUKT(), så i stedet kan du anvende en matrix formel.

Det gør formlen lidt længere, men det virker stadig :-)

=SUM(HVIS(ER.TAL(C5:BF5);(C5:BF5)*(C4:BF4=22)))+SUM(HVIS(ER.TAL(C5:BF5);(C5:BF5)*(C4:BF4=23)))

Når du har indtastet formlen, skal du trykke Ctrl+Shift+Enter for at fortælle at det er en matrix formel.
Avatar billede d4s Novice
07. september 2004 - 18:15 #12
Jeg har nu forsøgt med:
=SUM.HVIS(C4:BF4;">17";C5:BF5)
og får resultatet 8 selvom der optræder en værdi over 17 9 gange i området og giver 74 aftentimer.
Avatar billede jkrons Professor
07. september 2004 - 18:17 #13
Det er fordi den opfatter ">17" som en tekst, og det har du nok ikke stående så mange gange i området. Har du prøvet med min sidste variant?
Avatar billede d4s Novice
07. september 2004 - 18:19 #14
Din nye formel giver også tallet 8 i stedet for 74 timer med de data jeg tester.

Efterhånden synes jeg at du har fortjent dine 200 points for din store hjælp, så smid et svar, så får du dem.

Hvis du har mulighed for at hjælpe mig med den sidste fejlfinding over msn, ville jeg blive rigtig glad, for jeg tror det er en bagatel jeg mangler nu. Du kan kontakte mig over pjust@hotmail.com hvis du vil.
Avatar billede jkrons Professor
07. september 2004 - 18:21 #15
Jeg har desværre ikke msn (eller bruger det i hvert fald ikke), men har du mulighed for at sende mig arket?

jkr@lyngby.nu
Avatar billede jkrons Professor
07. september 2004 - 18:22 #16
svar :-)
Avatar billede jkrons Professor
07. september 2004 - 18:23 #17
Jeg skal i øvrigt lige et ærinde, så det kan godt vare et par timer, før jeg er klar igen.
Avatar billede d4s Novice
07. september 2004 - 18:25 #18
Jeg mangler en adresse at sende arket til :)
Avatar billede d4s Novice
07. september 2004 - 18:32 #19
pinligt. Jeg overså din adresse. Jeg sender med det samme *rødmer*
Avatar billede jkrons Professor
07. september 2004 - 20:35 #20
Hej d4. Jeg er tilbage, men jeg kan ikke se, at jeg har fået regnearket.
Avatar billede d4s Novice
07. september 2004 - 20:40 #21
Jeg har ellers sendt det. Det ryger afsted igen med det samme :)
Avatar billede jkrons Professor
07. september 2004 - 22:03 #22
Første del er på plads:-)  Nu giver beregningen 74 timer. Er alle vagter 8 eller 9 timer, uanset hvornår de begynder, eller kan en vagt fx hedde 14-20. Udløser den i givet fald aftentimer?
Avatar billede jkrons Professor
07. september 2004 - 22:06 #23
Jeg skal også nok lige spørge om der kan optræde skæve timer, altså fx 15.30 eller 16-45 eller lignende?
Avatar billede d4s Novice
08. september 2004 - 07:46 #24
Der kan opstå skæve timer, men dem koder jeg enten som 6,30-15,30, som så giver et helt tal eller også som 6,50-15, som giver 8,5 som er til at regne med.

Vagter kan være mellem 5 og 10 timer med 1/2 times spring. 15.45 vil derfor ikke kunne forkomme, men 14-20 kan.

Kan du forklare mig hvorfor formlen tidligere gav 8 i stedet for 74 timer? Jeg er typen der gerne vil forstå alt :)

Har jeg nævnt at jeg er lykkelig for at du vil hjælpe? Endda efter at du har fået dine points...
Avatar billede jkrons Professor
12. september 2004 - 11:03 #25
For god ordens skyld må jeg hellere lige sige at den færdige formel kom til at se ud som følger:

=SUM(HVIS(HVIS(C6:BF6>=14;HVIS(FORSKYDNING(C6:BF6;0;1)>17;FORSKYDNING(C6:BF6;1;1)))=FALSK;0;HVIS(FORSKYDNING(C6:BF6;0;1)>17;FORSKYDNING(C6:BF6;1;1))))

indtastet som matrixformel.
Avatar billede d4s Novice
12. september 2004 - 18:41 #26
og for god ordens skyld skal jeg lige nævne at betingelserne for at man kan tale om en aftenvagt er at vagten er pågyndt tidligst klokken 14.00. En 13-22 vagt tæller ikke som aftenvagt, selvom det er anført længere oppe.

Formlen virker sålænge arbejdstiden slutter før klokken 24.00.
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