Avatar billede mathiasiversen Nybegynder
12. marts 2001 - 15:43 Der er 22 kommentarer og
1 løsning

Sletning af dubletter...

Er der nogen der har et forslag til hvordan jeg kan slette alle dubletter i en liste. Jeg har en liste af tal og den er temmelig lang - jeg skal kun bruge de tal, som kun findes en gang i listen (rækkefølgen er ligemeget) ???????
Avatar billede mathiasiversen Nybegynder
12. marts 2001 - 15:44 #1
Ups! Jeg sidder i Excel!
12. marts 2001 - 15:50 #2
En metode findes under data/filter/avanceret filter

Én anden metodemetode er at bruge betinget formatering.
Jeg er gået ud fra, at data står i kolonne B.

1. Markér hele kolonne B (klik på bogstavet B)
2. Vælg Formatering > Betinget formatering
3. I \"Betingelse 1\" vælges \"Formel er\"
4. Skriv formlen
  =TÆL.HVIS($B:$B;B1)>1
5. Klik på knappen \"Formater\" og vælg et eller andet format. OK. OK.

Alle dubletter(og originaler) vil nu have det  valgte format. Du sletter nu blot, som du har lyst til.

Avatar billede mathiasiversen Nybegynder
12. marts 2001 - 16:09 #3
den er jeg med på, men selvom jeg kan få dem lavet om til et andet format, så skal de stadig slettes og listen er for lang til at jeg kan sidde og slette hver enkel.
Avatar billede janvogt Praktikant
12. marts 2001 - 16:16 #4
Prøv denne her:
(Forudsætter at din lange talrække står i kolonne A)

Marker hele A-kolonnen.
I menuen vælges DATA->FILTER->AVANCERET FILTER
Afmærk \"Kopier til et andet sted\"
Under kopier til vælges hele B-kolonnen.
Afmærk \"Kun unikke poster\"
Tryk \"OK\"

Herved får du alle unikke poster i B-kolonnen.
Bemærk, at den første række (A1) fungerer som overskrift, så for ikke at undgå, at tallet i A1 dupleres skal der anvendes en overskrift i celle A1.
Avatar billede janvogt Praktikant
12. marts 2001 - 16:18 #5
Derefter kan du kopiere B-kolonnen til A-kolonnen og derefter slette B-kolonnen.

Avatar billede mathiasiversen Nybegynder
12. marts 2001 - 16:25 #6
janvogt>> Ja så får jeg alle unikke værdier, men jeg skal have dubletterne HELT VÆK! Jeg har to lister (den ene på 10000, den anden på 9000) - jeg skal bruge alle de værdier der kun findes i den ene! Dvs. jeg skal ende op med en liste på 1000!
12. marts 2001 - 16:30 #7
Hvis vi tager udgangspunkt i, at du først laver en betinget formatering, hvor dine dubletter bliver med FED skrift, så kan du køre følgende makro efterfølgende.

God fornøjelse Flemming

Sub SletDubletter()
Dim iX As Integer
Dim iRow As Integer
Dim rCell As Range

    For Each rCell In Range(\"B1:B20\")
        If rCell = \"\" And rCell.Offset(1, 0) = \"\" And rCell.Offset(2, 0) = \"\" Then
            iRow = rCell.Row
            Exit For
        End If
    Next rCell
   
    For iX = iRow To 2 Step -1
        If Range(\"B\" & iX).Font.Bold = True Then Range(\"B\" & iX).EntireRow.Delete
    Next iX

End Sub
12. marts 2001 - 16:32 #8
Husk at udskifte området B1:B20 ud til det rigtige område - gerne størrer B1:B12000 samt B\'et i Range(\"B\" & iX) hvis det er i en anden kolonne :-)
Avatar billede janvogt Praktikant
12. marts 2001 - 16:36 #9
Det er jo lidt en anden problemstilling end den du beskriver i dit indledende spørgsmål.

Min løsning fjerner netop alle dupletter i en liste!

Har du mulighed for at sende dit ark til
jan_vogt_hansen@hotmail.com
så skal jeg kigge på det.
Avatar billede mathiasiversen Nybegynder
12. marts 2001 - 16:41 #10
Flemmingdehl>> iX - hvad er det -  hvad skal det evt. skiftes ud med?
Avatar billede nerøs Nybegynder
12. marts 2001 - 17:14 #11
Et filter må være udmærket. Hvis du filtrer til et nyt sted kan denne liste evt erstatte den gamle.
En anden metode er at filtrere listen lokalt.
Herefter er alle dubletter skjult.
Dem skal du så have mærket op, så de kan slettes.

En måde kunne være at lave en \"dummy\" kolonne ved siden af dine data:
Efter du har skjult dubletdata med filter vælger du cellerne i kolonnen ved siden af dine tal.
Herefter vælger du kun synlige celler ved at bruge <F5>, speciel, kun synlige.
Herefter trykker du F2 for at editere. Indtast \"1\" efterfulgt af CTRL ENTER (Alle valgte celler fyldes med 1).
Vis alle rækker igen vha filtermenuen og sorter dine data efter dummykolonnen, hvorefter du er klar til at slette dubletdata. 

VH Nerøs
12. marts 2001 - 17:52 #12
iX skal ikke skiftes ud.
19. marts 2001 - 20:54 #13
Har du fået det løst ?
Avatar billede mathiasiversen Nybegynder
21. marts 2001 - 16:52 #14
Nej der er ikke nogen af disse forslag der virker - heller ikke din macro desværre!
21. marts 2001 - 17:16 #15
du kan sende mig arket, så vil jeg kigge på det
flemse@post3.tele.dk - der er 2 af ovenstående forslag, som burde virke.
Avatar billede janvogt Praktikant
21. marts 2001 - 17:34 #16
>>> Flemming

Din idé med de fede tal virker ikke i praksis.
Betinget formatering med FED er ikke det samme som almindelig FED.
Avatar billede janvogt Praktikant
21. marts 2001 - 18:00 #17
>>> Nerøs

Så var min metode med avanceret felter nu lidt nemmere. :-)
Så vidt jeg kan se opnår vi det samme.

Problemet er bare, at vi misforstår opgaven.
Dubletterne skal slettes helt fra listen. Er der to nummer 98765 skal ingen af dem stå tilbage!

Så får begrebet \"unik værdi\" pludselig en helt ny betydning.

>>> Flemming

Forkert! Ingen af forslagene indtil videre virker!
Der skal nok lidt Offset-kode til for at slette dubletterne!
21. marts 2001 - 19:23 #18
Det kan også være, at jeg har læst forkert, det tyder mere på, at vi skal have gang i noget compare af de to lister, således vi kan der kan uddrages en liste over dem der eksisterer findes i den ene, men ikke den anden. Det har jeg lavet.

Smid din e-mail, så sender jeg det med det samme :-)
Avatar billede mathiasiversen Nybegynder
22. marts 2001 - 09:57 #19
min email: mathiasiversen@hotmail.com
22. marts 2001 - 10:59 #20
Mail er sendt.
Avatar billede nerøs Nybegynder
22. marts 2001 - 16:35 #21
Følgende kodestup udførerJobbet:
Klister den ind i et vba modul og kør den på et valgt område

Sub FjernDublettal()

  Dim dubletter    As Range
  Dim celle1      As Range
  Dim Celle2      As Range
    For Each celle1 In Selection

        For Each Celle2 In Selection

            If celle1 = Celle2 Then

                If celle1.Address <> Celle2.Address Then

                    If dubletter Is Nothing Then
                      Set dubletter = Union(celle1, Celle2)
                    Else
                      Set dubletter = Union(dubletter, celle1, Celle2)
                    End If

                End If

            End If

        Next Celle2

    Next celle1
    dubletter.Clear
    Selection.Sort ActiveCell, xlAscending
  \'Eller:
  \'dubletter.Delete (xlShiftUp)
   
End Sub

Avatar billede janvogt Praktikant
27. marts 2001 - 02:21 #22
Mathias fik du svar på dit spørgsmål?
Så godkend venligst ét eller flere af svarene.

Avatar billede mathiasiversen Nybegynder
27. marts 2001 - 22:46 #23
Tak for hjælpen allesammen!
Flemmingdahl sendte en udvidelse til excel som løste problemet. Jeg syntes ikke rigtigt at det andet fungerede så godt!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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