Avatar billede Stefane Nybegynder
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
Avatar billede finb Ekspert
11. december 2013 - 15:50 #1
1.
Sortér data efter unik nøgle

2.
skriv:
=hvis(sum(førsteKolonne;andenKolonne)=0;"slet"

3.
Sortér data efter "slet"
Avatar billede Stefane Nybegynder
11. december 2013 - 15:57 #2
Det duer desværre ikke. Dubletterne er i samme kolonne men i forskellige rækker.
Avatar billede finb Ekspert
11. december 2013 - 16:33 #3
1
Lav en kolonne med ABS-værdier (jeg har set din kommentar)

2
Sorter:
1. kriterie: unik nøgle
2. kriterie: ABS-værdien
Avatar billede Stefane Nybegynder
11. december 2013 - 16:41 #4
Tak for det. Jeg er ikke i mål. Jeg har dubletter som ikke kan udlignes. Altså dubletter som skal blive tilbage i arket som har samme fortegn. Hvordan får jeg skilt de to typer af dubletter fra hinanden?
Avatar billede jens48 Ekspert
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
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