Avatar billede bifangst Nybegynder
09. marts 2010 - 13:57 Der er 4 kommentarer og
1 løsning

Excel: Sammenligning af data i to kolonner

Hej

Hver måned modtager jeg et dataark med oplysninger, som jeg vha. opslag i et masterark overfører til et nyt ark i en form som jeg kan bruge. Inden jeg kan gøre det har jeg dog behov for at lave en kontrol af om masterarket indeholder de data jeg skal bruge.

I masterarket findes en kolonne (iVare1) med unikke varenumre som skal sammenlignes tilsvarende kolonne (iVare2) med varenumre i dataarket.

Det hænder at der, via dataarket, kommer nye varenumre til, og jeg har derfor prøvet at finde frem til en kode, der løber gennem (iVare1) og (iVare2), og via en tekstboks fortæller mig om der findes varenumre i (iVare2), som ikke findes i (iVare1), og i tilfælde heraf, hvilke.

Jeg har gennemsøgt nettet på kryds og tværs, men endnu ikke fundet en egnet løsning. Håber at hjælpen findes her:-)
Avatar billede klid Nybegynder
09. marts 2010 - 15:44 #1
Det er lidt indviklet, men det er sådan noget jo.

I en jomfruelig kolonne (N) i vare2 skriver du i celle N1
=hvis(er.fejl(lopslag(a1;vare2!a$1:a$500;1;falsk));1;0)

Her er forudsat at der er 500 poster i vare2, og at indexnummert står i kolonne A - men der må godt være flere poster. Er der fx 5000, så skal der stå a$5000 i stedet for a$500.


I kolonne M (som forhåbenlig også er jomfru) skriver du i celle M1
= N1
I celle M2 skriver du:
=M1+N2

I celle O1 skrives: (i det det antages at O indtil videre også er jomfru)
=hvis(n1=1;a1;)

Nu kopieres først celle n1 til celle n2.
Så O1 til O2

Dernæst kopieres cellerne M2, N2 og O2 og 500 gange nedad.

Lav så et nyt ark Nye numre.

I celle a1 skriver du 1
I  b1 skriver du
=lopslag(vare2!m1;vare2!M$1:vare2!m$500;3;falsk)
I celle a2 skriver du
=a1+1

Kopier b1 til b2.

Kopier a2 og b2 500 gange nedad

finito

Måske kan det gøres mere sexet, men det virker!
Avatar billede bifangst Nybegynder
10. marts 2010 - 09:46 #2
Hej Klid

Tak for din respons:-) Jeg kan godt se din pointe, og dine formler virker også fint.

Mit problem er bare at jeg er ved at omskrive fejlsøgnings- og den efterfølgende konverterings-/beregningsproces til VBA.

Tidligere versioner var udelukkende baseret på formler, men da der er tale om temmelig store datamængder, bliver min maskine simpelthen lagt ned, når jeg forsøger at konvertere data.

Kopiering, beregning og konverterng af data via VBA er ikke noget problem. Det virker fint. Det er blot fejlsøgningen der driller, så jeg håber stadig at nogen har en rigtig god idé.
Avatar billede kabbak Professor
10. marts 2010 - 12:12 #3
Public Sub TjekVareID()
    Dim NYdata As Variant, GLdata As Variant, N As Long, G As Long
    'Begge ark skal være i samme mappe
   
    NYdata = Sheets("NVvare").Range("a1:A" & Sheets("NVvare").Range("a1").CurrentRegion.Rows.Count)
    GLdata = Sheets("Master").Range("a1:A" & Sheets("Master").Range("a1").CurrentRegion.Rows.Count)
    For N = 2 To UBound(NYdata) ' starter ved række 2, da der er overskrifter
        For G = 2 To UBound(GLdata)
            If GLdata(G, 1) = NYdata(N, 1) Then ' hvis den findes,så
                NYdata(N, 1) = emty ' tømmes variablen
                Exit For
            End If
        Next
       
        If Not IsEmpty(NYdata(N, 1)) Then ' hvis den ikke findes, tilføjes den
            Sheets("Master").Range("A" & Sheets("Master").Range("a1").CurrentRegion.Rows.Count + 1) = NYdata(N, 1)
            MsgBox NYdata(N, 1) & " er tilføjet på række " & Sheets("Master").Range("a1").CurrentRegion.Rows.Count
            NYdata(N, 1) = Empty
        End If
    Next


End Sub
Avatar billede bifangst Nybegynder
10. marts 2010 - 13:40 #4
Hej Kabbak

Tusind tak - Det var præcis hvad jeg havde brug for:-)

Det virker upåklageligt:-)

Smid et svar så jeg kan give dig dine point
Avatar billede kabbak Professor
10. marts 2010 - 15:19 #5
;-))
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
Kurser inden for grundlæggende programmering

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