11. december 2013 - 15:37
Der er
5 kommentarer
Nogle dubletter skal blive andre skal slettes
Jeg har gang i en større analyse af dubletter. Mit XL 2010 regneark har over 12000 rækker hvoraf nogle tal i en kolonne udligner andre tal i samme kolonne. Jeg skal have fjernet dubletter der udligner hinanden fx +100 i en række og -100 i en anden. Rækkerne som skal udlignes er knyttet sammen af
1 - samme beløb med modsat fortegn i forskellige rækker
2 - Unik nøgle = samme nummer i begge førnævnte rækker
Det er ikke nok at lave en ABS og så bare fjerne dubletter
12. december 2013 - 21:16
#5
Så vidt jeg kan se, kan det kun laves med VBA. Jeg har lavet en simpel makro, som checker den unike nøgle i kolonne A og hvis der i kolonne B findes en værdi der kan udlignes med en tilsvarende negativ værdi slettes enten hele linien eller blot indholdet i cellerne i kolonne A og B - vælg selv. Jeg har afprøvet makroen på 12000 linier og det tager omkring 20 minutter at gennemløbe dem. Med 2000 linier tager det ca. et minut
Sub CheckForUdligning()
Dim LastRow As Long
Dim x As Long
Dim z As Long
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
LastRow = Range("A65536").End(xlUp).Row
For x = LastRow To 1 Step -1
For z = x - 1 To 1 Step -1
If Cells(z, 1) = Cells(x, 1) And Cells(z, 2) = -Cells(x, 2) Then
' Slet apostroffen i begyndelsen af de næste 2 rækker, hvis rækkerne ønskes slettet
'Cells(x, 1).EntireRow.Delete
'Cells(z, 1).EntireRow.Delete
'sæt apostrof i begyndelsen af de næste 2 rækker hvis rækkerne ønskes slettet
Range(Cells(x, 1), Cells(x, 2)).ClearContents
Range(Cells(z, 1), Cells(z, 2)).ClearContents
End If
Next
Next
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Cells(2, 4) = Now()
End Sub