Jeg sidder med et regneark, som indeholder data om en masse forskellige mennesker, herunder deres uddannelse mm. Nogle personer figurerer to gange, og disse ønsker jeg at frasortere (automatisk, da der er mere end 7000 navne i arket). De skal frasorteres efter, at den post, hvor den senest opnåede uddannelsesgrad er, skal forblive. Disse er angivet med årstal, dvs. jeg forestiller mig, at man kan sammenligne de poster, der har samme navn, og så lad den, hvis årstal er nyest blive, og den anden slettes.
Er dette muligt? Og hvis ja, hvad skal jeg da gøre?
Start med at sortere personerne efter rækkefølge som 1. orden stigende og derefter uddannelse som 2. orden faldende. Kør derefter følgende VBA kode
Sub SletData()
Range("A2").Activate
Do If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then ActiveCell.EntireRow.Delete Else ActiveCell.Offset(1, 0).Activate End If Loop Until ActiveCell.Value = ""
Helt i orden. Du starter med at vælge hele området du vil sortere (samtlige rækker og kolonner). Derefter vælger du data - sorter og sorterer først efter personerne - stigende, derefter deres uddannelse faldende. I begge tilfælde vælger du de kolonner hvor hhv. personens navne og uddannelse fremgår.
Derefter opretter du en vba kode ved at taste Alt+F11 og vælger insert - module. Der indsætter du koden hvorefter du går til excel arket og kører makroen ved at taste F8 og køre det navn du har givet den ( i mit eks. SletData. Vær opmærksom på, at den kolonne personerne står i SKAL fremgå af kolonne A. Derudover er det vigtigt at navnene er nøjagtig ens.
Spørg endelig hvis du har problemer med at få det til at fungere.
Jeg vil kigge på det på arbejde i morgen tidlig - hvis ikke det virker for mig, vender jeg tilbage, og hvis det virker, vender jeg også tilbage og uddeler point:-)
1) Jeg har sorteret efter (for)navne stigende, herefter efter uddannelse faldende. Skal det være selve uddannelsen eller skal det være årstallet, hvor de har færdiggjort uddannelsen, jeg her sorterer? Og egentlig skal både feltet med for- og efternavn tages i betragtning?
2) Herefter har jeg åbnet Visual Basic og indsæt den følgende kode i et module:
Sub Test()
Range("A2").Activate
Do If ActiveCell.Value = ActiveCell.Offset(-1, 0).Value Then ActiveCell.EntireRow.Delete Else ActiveCell.Offset(1, 0).Activate End If Loop Until ActiveCell.Value = ""
End Sub
3) Jeg skifter tilbage til regnearket med ALT + Tab og trykker F8 - men der sker ikke noget?
Du skal foretage sorteringen på én gang. dvs. du sorterer først efter navn, og i rubrikken nedenunder sorterer du efter end uddannelse (alt sammen i én sortering).
I Excel gør du det ved at vælge Data og derefter sorter.
Men hvordan sorterer jeg efter både for- og efternavn? Der er jo sikkert både for- og efternavne, som går igen, men begge skal være ens, før der skal fjernes noget naturligvis.
Hvis du har for- og efternavn i 2 celler kan du lave en sortering, Alternativt kan du lave en "hjælpecelle" vha. formlen sammenkædning - som du derefter sorterer i.
Sortede kolonnen, hvor årstal for afslutning af uddannelse fremgår, så de nyeste årstal står øverst. Markerer kolonnerne med fornavn og efternavn og går til Data --> Filter --> Avanceret filter. Her vælger jeg at beholde "Unikke poster", hvorefter den fjerner den nederste af eventuelle gengangere - dvs. den post, der svarer til den ældste uddannelse, netop som jeg ønskede. Herefter markerer jeg data og kopierer til et nyt ark, hvor kun de unikke poster kommer med.
Synes godt om
Ny brugerNybegynder
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.