• DİKKAT

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

Veri karşılaştırma

Katılım
18 Ağustos 2017
Mesajlar
119
Excel Vers. ve Dili
excel.2013
Merhaba
Excelde düşey ara yapmaya çalışıyorum ancak karşılaştırılacak veriler arasında nokta ç .c.i.ı gibi farklılıklar var. Örneğin çözüm ltd ile cozum.ltd aynı ancak haklı olarak düşey ara eşleşmesi yapmıyor . Sorunun bir çözümü var mıdır? Desteğinizi rica ederim
Teşekkürler
 

Ekli dosyalar

firmaların vergi numarası var mı ?
varsa firma vergi numarasına göre düşeyara ile karşılaştırma yapılabilir
 
VBA lı çözüm, boşluk, Türkçe harf ve noktalamalarda eşitlik sağlar. Fazla ve eksik karakterde eşitlik kontrolü yapmaz.
kontrol ediniz.

C#:
Dim veri, veri2 As String

Sub ozelduseyara()
    Set sh1 = Sheets("Sayfa1")
    Set sh2 = Sheets("Sayfa2")
   
    sonsatir1 = sh1.UsedRange.Rows.Count
    For i1 = 1 To sonsatir1
        veri = sh1.Cells(i1, "A").Value
        veri = turkceharfyok(veri)
        veri = ozelsil(veri)
        sonsatir2 = sh2.UsedRange.Rows.Count
        buldu = False
        For i = 1 To sonsatir2
            veri2 = sh2.Cells(i, "A").Value
            veri2 = turkceharfyok(veri2)
            veri2 = ozelsil(veri2)
            If veri = veri2 Then
               buldu = True
               Exit For
            End If
        Next i
        If buldu Then sh1.Cells(i1, "B").Value = "Var" Else sh1.Cells(i1, "B").Value = "Yok"
    Next i1
End Sub

Function ozelsil(verisil) As String
    harfler = "abcdefghijklmnopqrstuvwxyz0123456789 "
    gec = ""
    For i12 = 1 To Len(verisil)
      harf = Mid(verisil, i12, 1)
      nerede = InStr(harfler, harf)
      If nerede = 0 Then
         gec = gec & " "
         GoTo atla
      Else
         gec = gec & harf
      End If
atla:
      Next i12
      ozelsil = Trim(Replace(Replace(gec, "  ", " "), vbLf, ""))
End Function

Function turkceharfyok(cumle) As String
gecici = ""
For i11 = 1 To Len(cumle)
    h = Mid(cumle, i11, 1)
    Select Case h
      Case "ğ": gecici = gecici + "g"
      Case "ü": gecici = gecici + "u"
      Case "ş": gecici = gecici + "s"
      Case "ç": gecici = gecici + "c"
      Case "ö": gecici = gecici + "o"
      Case "ı": gecici = gecici + "i"
      Case "i": gecici = gecici + "i"
      Case Else: gecici = gecici + LCase(h)
      End Select
Next i11
turkceharfyok = gecici
End Function
 
VBA lı çözüm, boşluk, Türkçe harf ve noktalamalarda eşitlik sağlar. Fazla ve eksik karakterde eşitlik kontrolü yapmaz.
kontrol ediniz.

C#:
Dim veri, veri2 As String

Sub ozelduseyara()
    Set sh1 = Sheets("Sayfa1")
    Set sh2 = Sheets("Sayfa2")
  
    sonsatir1 = sh1.UsedRange.Rows.Count
    For i1 = 1 To sonsatir1
        veri = sh1.Cells(i1, "A").Value
        veri = turkceharfyok(veri)
        veri = ozelsil(veri)
        sonsatir2 = sh2.UsedRange.Rows.Count
        buldu = False
        For i = 1 To sonsatir2
            veri2 = sh2.Cells(i, "A").Value
            veri2 = turkceharfyok(veri2)
            veri2 = ozelsil(veri2)
            If veri = veri2 Then
               buldu = True
               Exit For
            End If
        Next i
        If buldu Then sh1.Cells(i1, "B").Value = "Var" Else sh1.Cells(i1, "B").Value = "Yok"
    Next i1
End Sub

Function ozelsil(verisil) As String
    harfler = "abcdefghijklmnopqrstuvwxyz0123456789 "
    gec = ""
    For i12 = 1 To Len(verisil)
      harf = Mid(verisil, i12, 1)
      nerede = InStr(harfler, harf)
      If nerede = 0 Then
         gec = gec & " "
         GoTo atla
      Else
         gec = gec & harf
      End If
atla:
      Next i12
      ozelsil = Trim(Replace(Replace(gec, "  ", " "), vbLf, ""))
End Function

Function turkceharfyok(cumle) As String
gecici = ""
For i11 = 1 To Len(cumle)
    h = Mid(cumle, i11, 1)
    Select Case h
      Case "ğ": gecici = gecici + "g"
      Case "ü": gecici = gecici + "u"
      Case "ş": gecici = gecici + "s"
      Case "ç": gecici = gecici + "c"
      Case "ö": gecici = gecici + "o"
      Case "ı": gecici = gecici + "i"
      Case "i": gecici = gecici + "i"
      Case Else: gecici = gecici + LCase(h)
      End Select
Next i11
turkceharfyok = gecici
End Function

Merhaba ,
Başarılı şekilde çalıştı. Çok teşekkürler.
 
VBA lı çözüm, boşluk, Türkçe harf ve noktalamalarda eşitlik sağlar. Fazla ve eksik karakterde eşitlik kontrolü yapmaz.
kontrol ediniz.

C#:
Dim veri, veri2 As String

Sub ozelduseyara()
    Set sh1 = Sheets("Sayfa1")
    Set sh2 = Sheets("Sayfa2")
   
    sonsatir1 = sh1.UsedRange.Rows.Count
    For i1 = 1 To sonsatir1
        veri = sh1.Cells(i1, "A").Value
        veri = turkceharfyok(veri)
        veri = ozelsil(veri)
        sonsatir2 = sh2.UsedRange.Rows.Count
        buldu = False
        For i = 1 To sonsatir2
            veri2 = sh2.Cells(i, "A").Value
            veri2 = turkceharfyok(veri2)
            veri2 = ozelsil(veri2)
            If veri = veri2 Then
               buldu = True
               Exit For
            End If
        Next i
        If buldu Then sh1.Cells(i1, "B").Value = "Var" Else sh1.Cells(i1, "B").Value = "Yok"
    Next i1
End Sub

Function ozelsil(verisil) As String
    harfler = "abcdefghijklmnopqrstuvwxyz0123456789 "
    gec = ""
    For i12 = 1 To Len(verisil)
      harf = Mid(verisil, i12, 1)
      nerede = InStr(harfler, harf)
      If nerede = 0 Then
         gec = gec & " "
         GoTo atla
      Else
         gec = gec & harf
      End If
atla:
      Next i12
      ozelsil = Trim(Replace(Replace(gec, "  ", " "), vbLf, ""))
End Function

Function turkceharfyok(cumle) As String
gecici = ""
For i11 = 1 To Len(cumle)
    h = Mid(cumle, i11, 1)
    Select Case h
      Case "ğ": gecici = gecici + "g"
      Case "ü": gecici = gecici + "u"
      Case "ş": gecici = gecici + "s"
      Case "ç": gecici = gecici + "c"
      Case "ö": gecici = gecici + "o"
      Case "ı": gecici = gecici + "i"
      Case "i": gecici = gecici + "i"
      Case Else: gecici = gecici + LCase(h)
      End Select
Next i11
turkceharfyok = gecici
End Function
VBA lı çözüm, boşluk, Türkçe harf ve noktalamalarda eşitlik sağlar. Fazla ve eksik karakterde eşitlik kontrolü yapmaz.
kontrol ediniz.

C#:
Dim veri, veri2 As String

Sub ozelduseyara()
    Set sh1 = Sheets("Sayfa1")
    Set sh2 = Sheets("Sayfa2")
   
    sonsatir1 = sh1.UsedRange.Rows.Count
    For i1 = 1 To sonsatir1
        veri = sh1.Cells(i1, "A").Value
        veri = turkceharfyok(veri)
        veri = ozelsil(veri)
        sonsatir2 = sh2.UsedRange.Rows.Count
        buldu = False
        For i = 1 To sonsatir2
            veri2 = sh2.Cells(i, "A").Value
            veri2 = turkceharfyok(veri2)
            veri2 = ozelsil(veri2)
            If veri = veri2 Then
               buldu = True
               Exit For
            End If
        Next i
        If buldu Then sh1.Cells(i1, "B").Value = "Var" Else sh1.Cells(i1, "B").Value = "Yok"
    Next i1
End Sub

Function ozelsil(verisil) As String
    harfler = "abcdefghijklmnopqrstuvwxyz0123456789 "
    gec = ""
    For i12 = 1 To Len(verisil)
      harf = Mid(verisil, i12, 1)
      nerede = InStr(harfler, harf)
      If nerede = 0 Then
         gec = gec & " "
         GoTo atla
      Else
         gec = gec & harf
      End If
atla:
      Next i12
      ozelsil = Trim(Replace(Replace(gec, "  ", " "), vbLf, ""))
End Function

Function turkceharfyok(cumle) As String
gecici = ""
For i11 = 1 To Len(cumle)
    h = Mid(cumle, i11, 1)
    Select Case h
      Case "ğ": gecici = gecici + "g"
      Case "ü": gecici = gecici + "u"
      Case "ş": gecici = gecici + "s"
      Case "ç": gecici = gecici + "c"
      Case "ö": gecici = gecici + "o"
      Case "ı": gecici = gecici + "i"
      Case "i": gecici = gecici + "i"
      Case Else: gecici = gecici + LCase(h)
      End Select
Next i11
turkceharfyok = gecici
End Function
Tekrar merhaba karşılaştırma sonucu var yada yok olarak yazdı bu süper. Var yada yok yerine
diğer sayfadan aynı olanı firmayı yanına yazsa süper olur. Mümkün mü bilmiyorum ama yine diğer sayfadan firmanın yanı sıra firma numarasını getirebilir mi çok teşekkürler
 
Geri
Üst