Avatar billede schindler Nybegynder
17. marts 2009 - 12:06 Der er 10 kommentarer

Frasortere gengangere efter bestemt kriterium

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?

På forhånd tak.
Avatar billede da_li Juniormester
17. marts 2009 - 16:45 #1
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 = ""


End Sub
Avatar billede schindler Nybegynder
17. marts 2009 - 22:33 #2
Øhm, jeg er ingen ørn til Excel. Kan du uddybe sorteringen, jeg skal lave? Og hvordan kører man en VBA kode?

På forhånd tak.
Avatar billede da_li Juniormester
17. marts 2009 - 23:58 #3
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.

Mvh

Dali
Avatar billede schindler Nybegynder
18. marts 2009 - 00:18 #4
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:-)

Foreløbig tak for hjælpen.
Avatar billede schindler Nybegynder
18. marts 2009 - 08:22 #5
Jeg har prøvet følgende:

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?

På forhånd tak for svaret.
Avatar billede schindler Nybegynder
18. marts 2009 - 08:23 #6
...det er i øvrigt en dansk version af Excel, jeg arbejder i.
Avatar billede da_li Juniormester
19. marts 2009 - 10:00 #7
Hej igen,

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.

For at køre makroen skal du taste Alt+F8.
Avatar billede schindler Nybegynder
19. marts 2009 - 21:27 #8
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.
Avatar billede da_li Juniormester
20. marts 2009 - 15:02 #9
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.

Mvh

Dali
Avatar billede schindler Nybegynder
25. marts 2009 - 12:39 #10
Jeg løste problemet på følgende måde:

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.
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
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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