Hej Jeg har to kolonner hhv. kolonne A og kolonne B. Kolonne A kan indeholde op mod 1500 celler med tal, hvor flere af tallene går igen i kolonnen. Kolonne B indeholder op mod ca. 50 celler med tal, hvor tallene ikke gentages i kolonnen.
Alle tal i kolonne B går helt sikkert igen i kolonne A, mens kolonne A kan indeholde tal, som ikke figurerer i kolonne B. Jeg har behov for på en let overskuelig måde at få sorteret ud, hvilke tal i kolonne A, som ikke fremgår af kolonne B. Tallene skal gerne stå samlet under hinanden, så jeg ikke skal rulle ned over 1500 rækker for at se, hvilke tal, der er sorteret ud.
Nedenfor er givet et eksempel, som gerne skulle lette forståelsen af, hvad jeg mener.
Jeg har behov for at få sorteret over i en kolonne for sig, de tal i kolonne A, som ikke fremgår i kolonne B, dvs. i eksemplet 110 og 112.
A B svar i kolonne C 101 101 110 101 102 112 101 111 102 115 102 102 102 110 111 111 112 112 115 115
Håber nogen kan være behjælpelig. På forhånd mange tak:-)
Public Sub Sammenlign() Dim Adata As Variant, Bdata As Variant, Cdata As Variant, I As Long, II As Long, RK As Long RK = ActiveSheet.UsedRange.Rows.Count Range("C1:C" & RK).ClearContents ' tømmer C kolonnen for evt gamle data Adata = Range("A1:A" & RK) Bdata = Range("B1:B" & RK) Cdata = Range("C1:C" & RK) '*************************** Fjerne dem som findes i B kolonnen fra A kolonnen For I = 1 To UBound(Adata) For II = 1 To UBound(Bdata) If Adata(I, 1) = Bdata(II, 1) Then Adata(I, 1) = "" Next II Next I '*************************** Fjerne dubletter fra A kolonnen For I = 1 To UBound(Adata) For II = 1 To UBound(Adata) If Adata(I, 1) = Adata(II, 1) And I <> II Then Adata(I, 1) = "" End If Next II Next I
'*************************** samler dem til C kolonnen II = 1 For I = 1 To UBound(Adata) If Adata(I, 1) <> "" Then Cdata(II, 1) = Adata(I, 1) II = II + 1 End If Next Range("C1:C" & RK) = Cdata End Sub
Sub CheckUniqueNumbers() LastRow = ActiveSheet.UsedRange.Rows.Count lastrowcolB = Range("B65536").End(xlUp).Row y = 1 For x = 1 To LastRow If Application.CountIf(Range("B1:B" & lastrowcolB), Cells(x, 1)) = 0 _ And Application.CountIf(Range("C1:C" & y), Cells(x, 1)) = 0 Then Cells(x, 1).Copy Destination:=Cells(y, 3) y = y + 1 End If Next End Sub
Ud fra din opgavebeskivelse er dette ikke en løsning, men jeg ville lige give dig en lavpraktisk vinkel også.
Lav et opslag på kolonne A - altså: =lopslag(A1;B1:B50;1;falsk) så får du tallet gentaget ud for alle dem hvor de er i kolonne B. Derpå laver du et filter og finder N/A i din nye kolonne.
Synes godt om
Ny brugerNybegynder
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.