Avatar billede Nichlas Mester
19. september 2016 - 13:46 Der er 8 kommentarer og
2 løsninger

Sammenlægning af ens kolonner

Hej alle sammen,

Jeg arbejder til dagligt på en skole, og skal i den forbindelse holde styr på kursister/elevers fravær.

Førhen har jeg gjort det på basis af fag etc. men grundet ændringer indefra, skal det nu laves på baggrund af et gennemsnit af de gængse fag.

Derfor har jeg nu et rigtig stort regneark, som er opbygget på den måde at i kolonne A står der kursistnummer, kolonne B indeholder navn og efternavn, kolonne C indeholder fraværs timer på det gældende fag og kolonne D indeholder deres fravær/afviklede timer. Ude i kolonne E har jeg så en hvis funktion, der med farve indikation viser om kursister er henholdsvis 100% fremmødt, 85% fremmødt, 80% fremmødt og 75% fremmødt eller lavere.

Mit spørgsmål er som følger; vil man kunne designe regnearket så det selv kan identificere gengangere, og "rydde op" i regnearket, så alle kursister kun fremgår 1 gang, og istedet for at fremvise fravær pr fag, viser fravær i alt for den enkelte kursist.

Altså samle gengangere under 1, lægge tallene i kolonne C sammen, og % tallet i kolonne D sammen samt dividere med det antal der nu blev lagt sammen, så man får et brugbart gennemsnit ud pr. kursist.

Jeg har prøvet mig frem med forskellige metoder, men da vi laver dette udtræk 2 gange om måneden, så er det en langsommelig process at gøre manuelt. Så jeg tænker lidt om det måske er noget man kan gøre med en Macro, så man istedet for manuelt at skulle gøre det, bare kan køre en macro hvergang man henter et nyt udtræk.

På forhånd tak for hjælpen
Avatar billede ebea Ekspert
19. september 2016 - 14:21 #1
Som udganspunkt, er du nok nødt til at uploade dit ark, så der kan ses hvilke data der indeholdes, og hvordan de er opsat, og hvordan de kan opsættes.
Evt. brug www.dropbox.com til at uploade dit Ark.
Avatar billede Nichlas Mester
19. september 2016 - 15:11 #2
Altså jeg kan ikke oploade det ark der skal bruges, da vi som statslig organisation er underlagt en masse bureaukrati, og derfor ikke må lægge noget ud som indeholder personlige oplysninger.

Jeg har istedet for lavet, et lille ark med 6 fiktive kursister, som går igen et par gange for ligesom at simulere hvad der er tale om. I original arket er det mellem 800-1000 kursister som figurer mellem 3-8 gange dvs. der er tale om 3000-8000 linjer.

https://www.dropbox.com/s/hjjgy3x8n01a618/Frav%C3%A6r.xlsx?dl=0
Avatar billede excelent Ekspert
19. september 2016 - 15:24 #3
Vi kan da starte med at lave en unik liste i Ark2
Går ud fra dit ark med alle data hedder Ark1 ellers ændre arknavne i koden

Sub KopierUnikke1()
Sheets("Ark1").Select
Range("A1:B" & Cells(65536, "A").End(xlUp).Row).AdvancedFilter xlFilterCopy, , [Ark2!A1], True
Sheets("Ark2").Select
End Sub

og så hente fraværstimer med

=SUMPRODUKT(('Ark1'!$A$2:$A$1000=A2)*('Ark1'!$C$2:$C$1000))
sættes ind i Ark2 celle C2 og kopieres ned
Avatar billede excelent Ekspert
19. september 2016 - 15:26 #4
Hvis der er mere end 1000 unikke kursister, så ret lige i formlen evt til 1100
=SUMPRODUKT(('Ark1'!$A$2:$A$1100=A2)*('Ark1'!$C$2:$C$1100))
Avatar billede excelent Ekspert
19. september 2016 - 15:32 #5
obs følgende 2 linier er reelt 1 linie

Range("A1:B" & Cells(65536, "A").End(xlUp).Row).AdvancedFilter xlFilterCopy, , [Ark2!A1], True
Avatar billede Nichlas Mester
19. september 2016 - 15:47 #6
Excelent, din unikke formel var brilliant, har gemt den som en macro! super brugbar i mange andre sammenhæng også!

Din Sumprodukt minder meget om en jeg selv har brugt tidligere, og fungere som den skal, jeg har dog prøvet med samme formel til at indhente til kolonne C, og med en form for divisions modifikator på, men kunne ikke få denne til at fungere ordentligt da det kom ud i en lang omgang hvis/lopslag som så bliver divideret med sumprodukt, da jeg nok ikke er så ferm som jeg gerne ville være i excel, så måske du også har en løsning til denne?
Avatar billede excelent Ekspert
19. september 2016 - 17:36 #7
Hvad har du helt præcis i kolonne D ?
Avatar billede NHFrost Praktikant
20. september 2016 - 07:49 #8
Nå vi prøver lige fra denne her istedet, min anden bruger blev åbenbart lukket.

Men hvorom alting er, så er kolonne D den vigtigste af alle kolonner, da det er den der viser det fravær vi eftersøger. kolonne D skal lægges sammen ligesom der er gjort med kolonne C, men så skal det divideres med det antal kolonner der blev brugt, så vi får gennem snittet.

Dvs. hvis tom går igen 10 gange og har sammenlagt 100% fravær så det tal vi søger er 10%, da 10/100 giver 0,1 og 0,1 omregnet er 10% hvilket giver os noget at gå ud fra når vi kigger på den enkelte kursist.
Avatar billede anedi Ekspert
20. september 2016 - 16:00 #9
Den gennemsnitlige fraværsprocent kan vist klares med en matrixformel, som denne:
=middel(hvis('Ark1'!$A$2:$A$1100=A2;'Ark1'!$d$2:$d$1100;""))

Husk at formlen skal evalueres ved at holde Shift+Ctrl nede inden du trykker enter.
Kopier herefter formlen ned til sidste navn i Ark2.

Vh
Anedi
Avatar billede NHFrost Praktikant
21. september 2016 - 08:09 #10
Hey anedi, super mange gange tak, have selv brugt præcis den samme formel engang før, men grundet total syvsoveri konkluderede jeg at de tal jeg fik ikke kunne passe, men nu hvor jeg kører den igen og er ny op vågnet kan jeg jo godt se den virker.

Så mange gange tak til jer alle sammen, i har være en stor hjælp!
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