Avatar billede magger Juniormester
16. januar 2004 - 13:56 Der er 15 kommentarer og
3 løsninger

Se dubletter i Excel

Hej eksperter,
Jeg har et excel-ark med ca. 20.000 rækker, som jeg skal gennemgå for dubletter, og det er jo en næsten umulig opgave at overkomme "ved håndkraft"!

Er der nogen, der har en nem (eller bare nemmere) måde at gøre dette på? Jeg tænker noget i retning af at det på en eller anden måde må være muligt at få dubletterne markeret. Det er vigtigt, at dubletterne ikke bare slettes, men at jeg får at vide, hvilke der er tale om.

Pftak :o)

/magger
Avatar billede oddj0b Nybegynder
16. januar 2004 - 14:01 #1
jeg lytter lige med.
Avatar billede overchord Nybegynder
16. januar 2004 - 14:04 #2
en laidt langsom kode kunne koeres:

for i = 1 to 20.000
 
    set1 = range("a" & i)
    for x = i +1 to 20.000
    set2 = range("a" & x)
    if set1= set2 and isnull(range("b" & x)) Then
          range("b" & x) = "Dublet af raekke" & i
    end if
    next x
    next i

Grunden til Isnull(range"b" & x) er at alle raekkerne vil saa blive tilskrevet som dubelt af den foerste forekomst frmefor den sidste.
f.eks hvis de samme tal forekommer i raekke 3 , 197 og 3000 vil der i raekke 197 og 3000 staa dublet af raekke 3
Avatar billede stewen Praktikant
16. januar 2004 - 14:08 #3
Det er vel nemmere med betinget formatering som evt farvekoder dubletterne! I betinget formatering brug du denne formel (gælder et helt ark):

=TÆL.HVIS($1:$65520;A1)>1
Avatar billede magger Juniormester
16. januar 2004 - 14:15 #4
Stewen: Kan din måde bruges når de 20.000 rækker indeholder ord?? Og i så fald, hvordan bruges funktionen så? Og ja, jeg er en ignorant til Excel, og benytter mig derfor af den gode eksperthjælp jeg kan få her ;-)

/magger
Avatar billede stewen Praktikant
16. januar 2004 - 14:22 #5
JA!
- Stil markøren i A1
- Marker hele arket
- Vælg formater -> Betinget formatering
- Vælg "Formlen er"
- Skriv =TÆL.HVIS($1:$65520;A1)>1
- Vælg Formater (her har du så mulighed for at vælge at cellen skal skifte til f.eks grøn eller vælge en større skrifttype osv.)
- Tryk OK
- Tryk OK

Nu vil alle de felter som der findes flere af være farvet grønne (eller hvad du nu har valgt!)
Avatar billede stewen Praktikant
16. januar 2004 - 14:22 #6
"Alle de felter som der findes flere af være farvet grønne"

Det sgu godt formuleret!!!!!!! ;-)
Avatar billede bak Forsker
16. januar 2004 - 14:23 #7
Jeg ville nok også gøre som stewen foreslår men ændre formlen lidt.
Hvis det er kolonne A det dejer sig om, stiller du dig i A1
Du skal bruge formater / betinget formatering.
I det første rullefelt vælger du "Formel er" og indsætter formlen
=TÆL.HVIS($A$1:A1;A1)>1
(bemærk at $ skal være som vist)
Kopier så formatet nedad til A20000. Brug formatpenslen
Avatar billede bak Forsker
16. januar 2004 - 14:24 #8
I min formel vil kun dubletterne være farvet
Avatar billede stewen Praktikant
16. januar 2004 - 14:27 #9
Ja, så er spørgsmålet blot hvad der skal bruges! Men korrekt at den KUN viser dubletterne i modsætning til min som viser "alle" celler
Avatar billede magger Juniormester
16. januar 2004 - 14:35 #10
Kan desværre ikke få nogen af delene til at virke. Jeg har en engelsk version af excel og har skiftet "TÆL.HVIS" ud med "COUNT.IF", som jeg går ud fra er korrekt?! Kan I hjælpe med en mere detaljeret forklaring? Jeg gør som beskrevet, men ingenting sker (og jeg har masser af dubletter, men de bliver ikke markeret).
/magger
Avatar billede stewen Praktikant
16. januar 2004 - 14:39 #11
COUNTIF
Avatar billede stewen Praktikant
16. januar 2004 - 14:39 #12
fjern dit punktum
Avatar billede magger Juniormester
16. januar 2004 - 14:51 #13
Hmmm, nu ser det ud som om det virker, men desværre bryder programmet sammen efter at have "tænkt" et kort øjeblik... er der for meget/for mange rækker???
/magger
Avatar billede bak Forsker
16. januar 2004 - 19:49 #14
Hvis det er et problem så kør denne makro istedet. Den klarer lynhurtigt at markere alle dubletter med gult.
Du bliver bedt om at markere 1. celle i kolonnen med dubletter

Sub MarkDuplicates()
Dim AllCells As Range, Cell As Range
Dim Uniqs As New Collection
Dim strCheck As String
Dim rngDel As Range
Dim indexcol As Range
    Set indexcol = Application.InputBox(prompt:="Marker første celle i kolonnen med dubletter", Type:=8)
    Application.ScreenUpdating = False
    LastRow = Cells(65536, indexcol.Column).End(xlUp).Row
    Set AllCells = Range(indexcol.Offset(1, 0), Cells(LastRow, indexcol.Column))
 
    On Error Resume Next
    For Each Cell In AllCells
        Uniqs.Add Cell.Value, CStr(Cell.Value)
        If Err.Number <> 0 Then Cell.Interior.Color = vbYellow
        Err.Clear
    Next Cell
    Application.ScreenUpdating = True
End Sub
Avatar billede katborg Praktikant
17. januar 2004 - 11:17 #15
Istedet for betinget formatering, kan du i kolonne B lave tilsvarende formel

countif($A$1:A1;A1)
Eller
countif($A:$A;A1)

Alt efter om du vil have talt den første med eller ej, jeg ville nok vælge den første, idet man så vil få en uniq liste ved at vælge dem som kun har countif = 1

På den måde kan du også bruge "Autofilter" til at sortere, samt få hvis antallet af forekomster.

En anden mulighed for at få overblik over dem er vha en pivot tabel. Må den måde kan du lave en tabel, som kun indeholder værdien 1 gang, og som data viser antal gange værdien indgår i tabellen.
Avatar billede katborg Praktikant
17. januar 2004 - 11:29 #16
Lidt ydereligere til Pivot tabellen.
Går ud fra at du i række 1 over "overskrifter" på kolonnen

Hvis du sætter indholdet af Kolonne A i "Drop Row Fields Here", og igen i "Drop Data Items Here". Felt skal lave en "Count of Kolonne A". Sætter du så Kolonne B i "Drop Page Fields Here", vil du få mulighed for at lave et Select på dem med 1, 2, 3 .. N forekomster.
Avatar billede katborg Praktikant
21. januar 2004 - 00:55 #17
-> Magger kan du bruge nogle af forslagne ??
Avatar billede stewen Praktikant
09. december 2004 - 14:29 #18
ja, spændende om det er lykkedes?

lukketid?
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
Excel kurser for alle niveauer og behov – find det kursus, der passer til dig

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