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

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
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.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
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")
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
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
.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Basitçe
=A1=YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(YERİNEKOY(B1;"Ç";"C");"İ";"I");"Ğ";"G");"Ö";"O");"Ü";"U");"Ş";"S")
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
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.
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
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.
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
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.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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")
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
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.
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
Cevap veren zaman ayıran herkese çok teşekkür ediyorum.
İyi ki varsınız,
Çözüm sağlandı sayenizde.
Saygılar.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
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
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
401
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
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.
 
Üst