Avatar billede sas_mart Nybegynder
24. juni 2008 - 14:44 Der er 3 kommentarer

Fjerne dubletter i rækker med ens kriterier

Jeg har et antal rækker, hvor jeg i 2 kolonner ønsker at undersøge om samme kombination af kolonne 1 og 2 er andre steder i rækken, markere dem, samt mulighed for at slette dem. Enten ved brug af en makro, eller andre opslagsfunktioner.

Col1    Col2
A2        B1  <---- findes i rækken
A2        B2
C2        B1
A2        B1  <----
Avatar billede stefanfuglsang Juniormester
24. juni 2008 - 15:05 #1
Hvis col1=A og col2=B er tekst, så lav en col3=C med formlen
=A1&B2 
i col4
=tæl.hvis(C$1:C1;C1) (bemærk 1 dollartegn i første reference)
Formlen tæller antallet af forekomster
Brug =hvis(tæl.hvis(c$1:c1;c1)=1;1;0), hvis du blot vil markere om det er en dublet
Avatar billede sleeper Nybegynder
24. juni 2008 - 16:59 #2
hvis det er office 2007 du har, kan du indsætte en tabel, og så får du en funktion i dit "bånd" som hedder fjern dubleter
Avatar billede quark-8382 Nybegynder
26. juni 2008 - 16:18 #3
Her er en løsning som brugeren Bak har hjulpet mig med.
Se evt. http://www.eksperten.dk/spm/610103
Den kan tjekke for dubletter i én kolonne eller for dubletter i kolonne A til I.

Public Sub MakerDubletterRødeAtilI()
Dim rCell As Range
Dim lLastRow As Long
  Application.ScreenUpdating = False
  lLastRow = Range("A65536").End(xlUp).Row
  Range("A1:I" & lLastRow).AdvancedFilter Action:=xlFilterInPlace, Unique:=True
  For Each rCell In Range("A1:A" & lLastRow)
      If rCell.EntireRow.Hidden = True Then rCell.Interior.Color = vbRed
  Next
  ActiveSheet.ShowAllData
  Application.ScreenUpdating = True
End Sub

Public Sub MakerDubletterRøde()
col = ActiveCell.Column
RowCount = Cells(65536, col).End(xlUp).Row
Range(Cells(1, col), Cells(65536, col).End(xlUp)).Select
For I = 1 To RowCount
If Cells(I, col).Interior.ColorIndex <> 3 Or Cells(I, col) <> "" Then
For I1 = I + 1 To RowCount
If Cells(I, col) = Cells(I1, col) Then
Cells(I1, col).Interior.ColorIndex = 3
End If
Next
End If
Next
End Sub


Public Sub FjernDubletterRøde()
col = ActiveCell.Column
RowCount = Cells(65536, col).End(xlUp).Row
Range(Cells(1, col), Cells(65536, col).End(xlUp)).Select
For I = 1 To RowCount
If Cells(I, col).Interior.ColorIndex = 3 Then
Cells(I, col).EntireRow.Delete Shift:=xlUp
I = I - 1
RowCount = RowCount - 1
End If
Next
End Sub

Mvh.
Quark-8382
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