16. januar 2004 - 13:56Der 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.
Den moderne arbejdsplads er i stigende grad afhængig af mødelokaler til at fremme samarbejde, men dette skift medfører også stigende sikkerhedsudfordringer.
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
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 ;-)
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!)
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
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
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
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
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.
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.
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.