Avatar billede allan-k Nybegynder
15. februar 2006 - 23:43 Der er 6 kommentarer

2 excel filer der skal tjekkes for dubletter mod hinanden

Hejsa jeg vil sige jeg ikke er en ørn til excel.
Jeg har 2 forskellige filer hvor jeg skal tjekke dubletter mod hinanden, hvis man kan sige det på den måde. filen har en kolonne hvor der er tlfnr. i og de 2 filer skal tjekkes mod hinanden for at se om de samme tlfnr. står flere gange. hver fil har ca. 10.000 rækker.
Avatar billede tjp Mester
16. februar 2006 - 02:00 #1
Kan der være mere end to forekomster af hvert tlf.nr, altså mere end ét af samme i hver fil? Hvad hedder filerne og hvilke kolonner er numrene i.
Avatar billede allan-k Nybegynder
16. februar 2006 - 09:34 #2
Jeg mener der godt kan være flere at samme nr. i hver fil, jeg har ikke navnet på kolonnerne da jeg skal undersøge det for en ven, der skal bruge det, som jeg også skal bruge senere. desværre det er det tætteste jeg kan komme med lige nu, men hvis du skal have flere oplys. så sig til så må jeg kontakte ham  *smiler*
Avatar billede rune_daub Nybegynder
16. februar 2006 - 10:50 #3
Du kan altid bruge en countif funktion, som også hedder tæl.hvis på dansk.
Måden du bruger den er på følgende.
=countif(celler du ønsker at søge i; celle der indeholder original søgedata;1;0)
F.eks. =countif(C:C;A1;1;0)
I et sådan tilfælde ville funktionen tælle antal gange værdien af A1 findes i kollonne C.
I dit tilfælde skal du jo bare finde ud af om telefonnumrene i den ene kollonne findes i den anden. Så det du gør er at du sætter funktionen ind og kopiere den ned igennem dit ark på 10000 numre.
Når den er færdig med at kalkulere funktionen, så har du en masse 1 taller ved de numre som findes i begge kollonner, og en masse 0 ved dem som ikke findes i begge kollonner.
På den måde finder du dit svar.
Du skal lige være opmærksom på at den skal lave 10.000 x 10.000 beregninger, hvilket godt kan tage lidt tid. Op til 5 minutter alt efter din computers hastighed. Så når den er færdig først gang, og du skal til at sortere i resultaterne, så er det måske en ide lige at markere beregningskollonnen og indsætte den som værdier.. på den måde slipper du for at lave beregningerne hver gang du ændre i dine sorteringsmuligheder.
Avatar billede allan-k Nybegynder
16. februar 2006 - 19:33 #4
Rune Daud:
det jeg kan se er at den kun kigger i den ene fil, jeg skal jo have den til at sammenligne i begge excel filer.
Avatar billede kabbak Professor
16. februar 2006 - 20:26 #5
Her er en dar kikker i begge filer, den sammenligner det der står i de kolonner du har klikket en celle i.

Læs hvad der står på inputboksene

Læs begge mapper ind i excel

skift imellem dem via vindue.

Hold øje med hvilken mappe du er i, den hopper ikke selv tilbage.

læg koden i et modul i den første mappe, med tlfnumre og vælg først data der.


Public Sub TjekTlf()
    Dim F_AD As Range, A_AD As Range, U_AD As Range, RW As Long, Uddata() As Variant, Gentaget As Boolean
    Dim I As Long, Y As Long
    Set F_AD = Application.InputBox(Prompt:="vælg en celle i den første kolonne, med tlfnumre", Type:=8)
    RW = Cells(65536, F_AD.Column).End(xlUp).Row
    Data1 = Range(Cells(1, F_AD.Column), Cells(RW, F_AD.Column))

    Set A_AD = Application.InputBox(Prompt:="Skift Mappe og vælg en celle i den anden kolonne, med tlfnumre", Type:=8)
    With A_AD
        .Parent.Parent.Activate
        .Parent.Activate
    End With
    RW1 = Cells(65536, A_AD.Column).End(xlUp).Row
    Data2 = Range(Cells(1, A_AD.Column), Cells(RW1, A_AD.Column))

    ReDim Uddata(UBound(Data1) + UBound(Data2), 1)
    Set U_AD = Application.InputBox(Prompt:="vælg en celle i den kolonne resultatet skal i", Type:=8)
    With U_AD
        .Parent.Parent.Activate
        .Parent.Activate
    End With
    X = 0
    Uddata(0, 0) = " Tlf"
    Uddata(0, 1) = " Antal"

    For I = 1 To UBound(Data1)
          Gentaget = False
        If X = 1 Then
            Gentaget = False
        Else
     
            For Y = 1 To X
                If Uddata(Y, 0) = Data1(I, 1) Then
                    Uddata(Y, 1) = Uddata(Y, 1) + 1
                    Gentaget = True
                    Exit For
                End If
            Next
        End If
       
        If Not Gentaget Then
            X = X + 1
            Uddata(X, 0) = Data1(I, 1)
            Uddata(X, 1) = 1
        End If
    Next

    For I = 1 To UBound(Data2)
        Gentaget = False
        For Y = 1 To X
            If Uddata(Y, 0) = Data2(I, 1) Then
                Uddata(Y, 1) = Uddata(Y, 1) + 1
                Gentaget = True
                Exit For
            End If
        Next
        If Not Gentaget Then
            X = X + 1
            Uddata(X, 0) = Data2(I, 1)
            Uddata(X, 1) = 1
        End If
    Next
    Range(Cells(1, U_AD.Column), Cells(UBound(Uddata) + 1, U_AD.Column + 1)) = Uddata

End Sub
Avatar billede allan-k Nybegynder
16. februar 2006 - 22:12 #6
Jeg vil prøve den kabbak
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
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

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