• DİKKAT

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

Türkçe Karakter Olan Verileri Doğru Kabul Etme

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
478
Excel Vers. ve Dili
Office 365 Türkçe (64 bit)
Merhaba,
A sütunda Türkçe karakter içermeyen Ad Soyad bilgileri var.
B sütununda ise tam olarak doğru ve Türkçe karakterli Ad Soyad bilgileri var.

Örnek:
A1 = CUNEYT CETIN B1 = CÜNEYT ÇETİN


Eğer(b1=a1;"Doğru";"Yanlış") basitçe bu formül ile sonuç "Yanlış" olarak geliyor.

İsteğim;
C1 hücresine B1 ile A1 hücrelerindeki Türkçe karakterler haricindeki harfler aynı ise "Doğru" sonucunu vermesini istiyorum.

Not: Ancak yarın online olabileceğim, yanıt veren değerli arkadaşlarıma yarına kadar dönüş yapamayacağım.
Şimdiden çok teşekkür ederim.
Saygılarımla.
 
Merhaba,

Her iki hücreyi Türkçe karakterlerden kurtarıp öyle karşılaştırma yaparsanız sonuca ulaşırsınız.

Kod:
=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(A1;"Ç";"C");"Ğ";"G");"İ";"I");"Ö";"O");"Ş";"S");"Ü";"U")=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(B1;"Ç";"C");"Ğ";"G");"İ";"I");"Ö";"O");"Ş";"S");"Ü";"U")
 
VBA ile alternatif;





C#:
Function checkStrings(rng1 As Range, rng2 As Range)
'   Haluk - 11/05/2022
    str1 = StrConv(rng1.text, vbUpperCase, 1033)
    str1 = StrConv(rng1.text, vbUpperCase, 64)
    
    str2 = StrConv(rng2.text, vbUpperCase, 1033)
    str2 = StrConv(rng2.text, vbUpperCase, 64)
    
    checkStrings = str1 = str2
End Function

.
 
Basitçe
=A1=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(B1;"Ç";"C");"İ";"I");"Ğ";"G");"Ö";"O");"Ü";"U");"Ş";"S")
 
Merhaba,

Her iki hücreyi Türkçe karakterlerden kurtarıp öyle karşılaştırma yaparsanız sonuca ulaşırsınız.

Kod:
=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(A1;"Ç";"C");"Ğ";"G");"İ";"I");"Ö";"O");"Ş";"S");"Ü";"U")=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(B1;"Ç";"C");"Ğ";"G");"İ";"I");"Ö";"O");"Ş";"S");"Ü";"U")

Necdet Bey,
Çok teşekkür ederim. İstediğim sonucu aldım, sadece a sütununda küçük harf olanlarda eşleşmedi.

A1= cüneyt B1 = CÜNEYT sonuç yanlış verdi.
 
Basitçe
=A1=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(B1;"Ç";"C");"İ";"I");"Ğ";"G");"Ö";"O");"Ü";"U");"Ş";"S")

Ömer Faruk Bey size de çok teşekkür ederim. Bu formülde işime yaradı, ancak Necdet beyin formülü ile olan küçük büyük harf olanlarda ki sorun bunda da oldu.
 
VBA ile alternatif;





C#:
Function checkStrings(rng1 As Range, rng2 As Range)
'   Haluk - 11/05/2022
    str1 = StrConv(rng1.text, vbUpperCase, 1033)
    str1 = StrConv(rng1.text, vbUpperCase, 64)
   
    str2 = StrConv(rng2.text, vbUpperCase, 1033)
    str2 = StrConv(rng2.text, vbUpperCase, 64)
   
    checkStrings = str1 = str2
End Function

.


Haluk Bey, alternatif öneriniz için çok teşekkür ederim.
Diğer formüllerde oluşan küçük harf büyük harf sorunu sizin verdiğiniz yöntemde oluşmadı.
İlginize teşekkür ederim.
 
Deneyiniz.

C++:
=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(BÜYÜKHARF(A1);"Ç";"C");"Ğ";"G");"İ";"I");"Ö";"O");"Ş";"S");"Ü";"U")=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(BÜYÜKHARF(B1);"Ç";"C");"Ğ";"G");"İ";"I");"Ö";"O");"Ş";"S");"Ü";"U")
 
Deneyiniz.

C++:
=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(BÜYÜKHARF(A1);"Ç";"C");"Ğ";"G");"İ";"I");"Ö";"O");"Ş";"S");"Ü";"U")=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(BÜYÜKHARF(B1);"Ç";"C");"Ğ";"G");"İ";"I");"Ö";"O");"Ş";"S");"Ü";"U")

Korhan Bey,
Evet bu formülde küçük büyük harf sorunu da kalmadı.

Çok teşekkür ederim.
 
Cevap veren zaman ayıran herkese çok teşekkür ediyorum.
İyi ki varsınız,
Çözüm sağlandı sayenizde.
Saygılar.
 
Alternatif bir kullanıcı tanımlı fonksiyon..

Dilerseniz fonksiyonun 3. parametresi ile büyük-küçük harf duyarlı olarak kullanabilirsiniz. Aşağıdaki hali ile büyük-küçük harf duyarsızdır.

=Get_Text_Match(A1;B1;0) 'Büyük-Küçük harf duyarsız"
=Get_Text_Match(A1;B1;YANLIŞ) 'Büyük-Küçük harf duyarsız"
=Get_Text_Match(A1;B1) 'Büyük-Küçük harf duyarlı"
=Get_Text_Match(A1;B1;1) 'Büyük-Küçük harf duyarlı"
=Get_Text_Match(A1;B1;DOĞRU) 'Büyük-Küçük harf duyarlı"


C++:
Option Explicit

Function Get_Text_Match(Rng1 As Range, Rng2 As Range, Optional Case_Sensitive As Boolean = True) As Boolean
    Dim Old_Char As String, New_Char As String
    Dim Text1 As String, Text2 As String, X As Long
    
    Application.Volatile True
    
    Old_Char = "ç Ç ğ Ğ i İ ö Ö ş Ş ü Ü"
    New_Char = "c C g G ı I o O s S u U"
            
    Text1 = IIf(Case_Sensitive, Rng1.Value, UCase(Replace(Replace(Rng1.Value, "ı", "I"), "i", "İ")))
    Text2 = IIf(Case_Sensitive, Rng2.Value, UCase(Replace(Replace(Rng2.Value, "ı", "I"), "i", "İ")))
            
    For X = LBound(Split(Old_Char)) To UBound(Split(Old_Char))
        Text1 = Replace(Text1, Split(Old_Char)(X), Split(New_Char)(X))
        Text2 = Replace(Text2, Split(Old_Char)(X), Split(New_Char)(X))
    Next
    
    Get_Text_Match = (Text1 = Text2)
End Function
 
Alternatif bir kullanıcı tanımlı fonksiyon..

Dilerseniz fonksiyonun 3. parametresi ile büyük-küçük harf duyarlı olarak kullanabilirsiniz. Aşağıdaki hali ile büyük-küçük harf duyarsızdır.

=Get_Text_Match(A1;B1;0) 'Büyük-Küçük harf duyarsız"
=Get_Text_Match(A1;B1;YANLIŞ) 'Büyük-Küçük harf duyarsız"
=Get_Text_Match(A1;B1) 'Büyük-Küçük harf duyarlı"
=Get_Text_Match(A1;B1;1) 'Büyük-Küçük harf duyarlı"
=Get_Text_Match(A1;B1;DOĞRU) 'Büyük-Küçük harf duyarlı"

Korhan Bey,
=Get_Text_Match(A1;B1;0) 'Büyük-Küçük harf duyarsız" 1. parametreyi kullanacağım, ama 3. ve diğer parametreler sayesinde lazım olduğunda her türlü varyasyon için çözüm zaten elimde olmuş olacak sayenizde,

Tekrar size ve diğer cevap veren herkese çok teşekkür ederim.
Saygılar.
 
Geri
Üst