Avatar billede brisoe Nybegynder
13. november 2012 - 14:24 Der er 3 kommentarer

Sammenligning af to dataserier

Jeg har to regne ark med hver omkring 18000 linjer.
Ark1 er data fra sidste periode og ark2 er fra en ny periode.

Problemstillingen er at jeg skal sammenligne ark2 med ark 1 for at se om der er kommet ændringer. Med hjælp fra lignende spørgsmål herinde har jeg fået lavet et program som næsten virker som det skal. Den del af programmet det drejer sig om ser således ud:

Dim strOdenseG As String
    Dim strOdenseN As String
    Dim varGamData As Variant
    Dim varNyData As Variant
    Dim varGD() As Variant
    Dim varND() As Variant
    Dim C, T, A As Integer
    Application.ScreenUpdating = False
   
    varGamData = Worksheets("Odense G").Range("a1").CurrentRegion
    varNyData = Worksheets("Odense N").Range("a1").CurrentRegion
    ReDim varGD(UBound(varGamData, 1))
    ReDim varND(UBound(varNyData, 1))
   
    For T = 2 To UBound(varNyData, 1)
        strOdenseN = varNyData(T, 1) & varNyData(T, 3) & varNyData(T, 5) & varNyData(T, 6)
       
        For C = 2 To UBound(varGamData, 1)
            strOdenseG = varGamData(C, 1) & varGamData(C, 3) & varGamData(C, 5) & varGamData(C, 6)
           
            If strOdenseG = strOdenseN Then
                varND(T) = "ENS"
                varGD(C) = "ENS"
                Exit For
            Else
                If varGD(C) <> "ENS" Then varGD(C) = Empty
                If varND(T) <> "ENS" Then varND(T) = Empty
            End If
        Next C
    Next T

Problemet er at hvis linje 1 og 2 er ens både i ark1 og ark2 så tager programmet linje 1 fra ny data og leder den gamle data igennem, finder linje 1 og siger at der er en makker. Derefter tager den linje 2 og søger ligeledes igennem, men kommer igen kun til linje 1 og siger at der er en makker. Det gør at linje 2 i gammel data ikke har en "makker" i den nye data selvom der reelt er en tilsvarende linje. Problemet kan løses ved at fjerne "Exit for" sætningen, men det gør at programmet tager en halv time at køre igennem.. Generelt er det også et problem at programmet er langsomt.

Nogle der har andre løsningsforslag? Sig til hvis i mangler noget info for at kunne hjælpe, eller hvis jeg ikke har formuleret problemet godt nok.
Programmet er lavet i excel 2010 med VBA
Avatar billede finb Ekspert
13. november 2012 - 15:16 #1
Er vba nødvendig ?
Kan Lopslag gøre det ?
Avatar billede brisoe Nybegynder
13. november 2012 - 15:32 #2
Det tror jeg ikke, da jeg skal sammenligne kolonnerne a, c, e og f
dvs at jeg samler hvad der står i de 4 felter til en variabel og holder op mod samme rækker i det andet ark
Avatar billede brisoe Nybegynder
13. november 2012 - 15:40 #3
Samtidigt vil jeg gerne have de linjer der ikke findes, kopieret over i nyt ark. så man nemmere kan se hvor der er afvigelser.
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