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
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
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

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,647
Excel Vers. ve Dili
Pro Plus 2021
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:

Believing

Altın Üye
Katılım
19 Mayıs 2013
Mesajlar
700
Excel Vers. ve Dili
Office Pro 2019 TR 32 Bit
Windows Pro 10 TR 64 Bit
Altın Üyelik Bitiş Tarihi
23-08-2028
Sayın Veyselemre,

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

Saygılarımla,
 
Üst