• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Türkçe ve İngilizce karakterli listeleri karşılaştırma, eşleştirme ve listeleme

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
703
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Sayın Uzman arkadaşlar,

Ekteki çalışma kitabında farklı sitemlerden ekde edilmiş Türkçe karakterli ve İngilizce karakterli iki farklı listeyi karşılaştırmak istiyorum. Örnek çalışmaları uzun süredir inceliyorum ama henüz net bir sonuç alamadım. Detaylı açıklama ve örnek çalışma ekteki gibi olup, bu koşullara göre nasıl bir yöntem ve kod kullanmalıyım?
Benim için çok değerli olan yardımlarınızı rica ediyorum.

Saygılarımla,
 

Ekli dosyalar

Tekrarlı isimleri için ayrıca çözüm bulmanız gerekir.
Kod:
Sub test()

    Dim sP As Worksheet, sL As Worksheet
    Dim w$(1 To 1, 1 To 2), i&, ii&, kys, ky, itm, dK
    Dim son&, satG&, satH&
    Set sP = Sheets("PARAMETRE")
    Set sL = Sheets("LİSTE")

    son& = sL.Cells(Rows.Count, 3).End(3).Row
    sP.Range("D2:I" & Rows.Count).ClearContents

    dK = Array("Ğ", "G", "Ü", "U", "İ", "I", "Ş", "S", "Ç", "C", "Ö", "O")

    With CreateObject("Scripting.Dictionary")
        For i = 2 To son
            kys = Split(sL.Cells(i, 3).Value, " ")
            ky = kys(UBound(kys))
            kys(UBound(kys)) = ""
            ky = Trim(ky & ", " & Join(kys))
            For ii = 0 To UBound(dK) - 1 Step 2
                ky = Replace(ky, dK(ii), dK(ii + 1))
            Next ii

            If Not .exists(ky) Then
                w(1, 1) = sL.Cells(i, 3).Value
                w(1, 2) = sL.Cells(i, 4).Value
                .Item(ky) = w
            End If

        Next i

        son& = sP.Cells(Rows.Count, 3).End(3).Row
        satG = 2
        For i = 2 To son
            ky = sP.Cells(i, 3).Value
            If .exists(ky) Then
                sP.Cells(i, 4).Resize(, 2).Value = .Item(ky)
                .Remove ky
            Else
                sP.Cells(satG, 7).Value = ky
                satG = satG + 1
            End If
        Next i

        If .Count > 0 Then
            satH = 2
            For Each itm In .items
                sP.Cells(satH, 8).Value = itm(1, 1)
                sP.Cells(satH, 9).Value = itm(1, 2)
                satH = satH + 1
            Next
        End If
    End With

End Sub
 
Son düzenleme:
Sayın Veyselemre,

Ellerinize ve emeğinize sağlık.
ALLAH sizden razı olsun.
Hakkınızı helal ediniz lütfen.

Saygılarımla,
 
Geri
Üst