I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
denne er lavet af bak og testet på 20.000 x 20.000 rækker ....... det laver den på ca. 5 sekunder
Sub Init_Compare() '''Dim af variable Dim TB1 As Range, TB2 As Range, TB3 As Range, TB4 As Range Dim Temp As Range Dim IndexCol1 As Long, IndexCol2 As Long Dim StartTid As Double Dim ReturnArray As Variant
Set TB1 = Sheets("NyListe").Range("A1:F1") '1. inputområde Set TB2 = Sheets("FastListe").Range("A1:f1") '2. inputområde
Set TB3 = Sheets("ResultatListe").Range("A1") '1. outputområde Set TB4 = Sheets("ResultatListe").Range("A1") '2. outputområde IndexCol1 = 2 'anden kolonne i TB1 (B) IndexCol2 = 2 'anden kolonne i TB2 (B)
Set ReturnArray = Nothing Application.ScreenUpdating = True MsgBox "Færdig tid : " & Timer - StartTid Sheets("ResultatListe").Select End Sub
Sub DoCompare2Lists(WS1 As Range, WS2 As Range, SearchCol1 As Long, SearchCol2 As Long, aForskel As Variant) Dim xCol As Scripting.Dictionary Dim Fundet As Boolean, Last1 As Long, Last2 As Long Dim Cols2 As Long Dim i As Long, z As Long, x As Long
Set xCol = New Scripting.Dictionary Cols2 = WS2.Columns.Count Last1 = WS1.Cells(65536, SearchCol1).End(xlUp).Row Last2 = WS2.Cells(65536, SearchCol2).End(xlUp).Row ReDim aForskel(Last2, Cols2) z = 0
On Error Resume Next With WS1 For i = 1 To Last1 xCol.Add Item:=CStr(.Cells(i, SearchCol1)), Key:=CStr(.Cells(i, SearchCol1)) Next End With With WS2 For i = 1 To Last2 Fundet = xCol.Exists(CStr(.Cells(i, SearchCol2))) If Not Fundet = True Then z = z + 1 For x = 1 To Cols2 aForskel(z, x) = .Cells(i, x) Next End If Fundet = True Next End With Set xCol = Nothing End Sub
Der er forøvrigt et men ved LOPSLAG - listen skal være sorteret - er den ikke det kan SLÅ.OP bruges i stedet: =HVIS(ER.FEJL(SLÅ.OP(A1;B:B));"NOT";"YES")
Sammenligningstype er tallene -1, 0 eller 1. Sammenligningstype angiver, hvordan opslagsværdi sammenlignes med værdier i opslagsmatrix.
Hvis sammenligningstype er 1, finder SAMMENLIGN den største værdi, der er mindre end eller lig med opslagsværdi. Opslagsmatrix skal være sorteret i stigende rækkefølge:...-2, -1, 0, 1, 2, ... A-Å, FALSK, SAND.
Hvis sammenligningstype er 0, finder SAMMENLIGN den første værdi, der er helt identisk med opslagsværdi. Opslagsmatrix kan være sorteret i en hvilken som helst rækkefølge.
Hvis sammenligningstype er -1, finder SAMMENLIGN den mindste værdi, der er større end eller lig med opslagsværdi. Opslagsmatrix skal være sorteret i faldende rækkefølge: SAND, FALSK, Å-A,...2, 1, 0, -1, -2,... osv.
Hvis sammenligningstype udelades, forudsættes værdien 1.
Jeg har selvfølgelig ligget og leget lidt med LOPSLAG inden jeg stillede spørgsmålet her....mit problem er at HVIS og LOPSLAG hvis ikke har det så godt sammen. Jeg kan godt få en liste frem med sammenfaldende tal...men er ikke interesseret i at få fejlen #it når der ikke er sammenfald.
Jeg tror sammenlign er bedre med HVIS og ER.FEJL.....og prøver lige med 0
lopslag virker da ganske udemærket selv OM data ikke er sorteret, når man bruger "0", så skal der jo findes en eksakt værdi.
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.