Yabancı kelime ogrenme tablosu (kelime karsılastırma fonksiyonu)

Katılım
17 Kasım 2007
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 English
Altın Üyelik Bitiş Tarihi
24.02.2018
Merhaba Ustadlarım,

Fonksiyonel konuda sizin yardımınıza ihtiyacım var.
Ekteki excel de size orjinal tablodan kucuk bir kesinti yaparak istedigimi yani kendim yapamadıgımı size 2-3 madde de anlatmaya calıstım.
Basit ama pratik olacak bir sekilde ,bir tablo icinde yabancı kelime ogrenmek icin bosluk doldurma ve ona gore dogru yanlıs iliskisi ve istatistigi icin bir formulasyona ihtiyacım var. Ekte gorebilirsiniz.

Simdiden yardımlarınız icin cok tesekkur ederim.
İyi haftasonları..
 

Ekli dosyalar

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,020
Excel Vers. ve Dili
2013 Türkçe
Sorun makro ile çözülebilir. Eğer kelimelerin doğrusu ve yazdığınızın karakter sayısı aynı değilse yapmak zor olur.
Örneğin;
1- Kasket yerine kaset yazdığınızda nasıl sonuç vermeli?
2- Yalnız yerine yanlız yazdığınızda nasıl sonuç vermeli?
3- Bavul yerine davul yazdığınızda nasıl hata vermeli?
 
Katılım
17 Kasım 2007
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 English
Altın Üyelik Bitiş Tarihi
24.02.2018
Ustadım slav dillerinde malesef ekteki excel de ve asagida da yazdıgım gibi bizden farklı ama bizim dilimize okunus olarak cok yakın karsılıklarını yazdıgım harfler var..
ľ = l , š = s , č = c , ť = t , ž = z , ý = y , á = a , í = i , é = e
ä = a , ň = n , ô = o , ú = u

Genel kuralım; o kelimeyi bulmaya calısırken bu harflerin tam karsılıgına gelen ozdesi harfleri dogru kabul etsin ve hatadan saymasın. bir ornek uzerinden tüm türevlerini yazmaya calısacagım. Kelime ''bežný'' burda ž = z , ý = y sartların saglayacak sekilde dogru ve yanlıs cesitleri ;

bežný = bezny ....... dogru
bežný = bežny ....... dogru
bežný = bezný ....... dogru
bežný = bežýn .......... yanlıs ... harf sırası degisikligi
bežný = cežný ........ yanlıs 1 harf ''c''
bežný = cažný .........yanlıs 2 harf ''c'' , ''a''
bežný = cazny .........yanlıs 2 harf ''c'' , ''a''
bežný = bežreny........ yanlıs coklu yanlıs

gibi . Umarım anlatabilmisimdir,eksik harf,fazla harf ve turevini verdigim harf dısında yazılan harflerle yapılan keilmeler yanlıs... sadece ilk 3 ihtimal icin kelime dogru vermeli...

aslında farkettigim bu kriterlerde dogru yanlısı vermesi bana yeterli sanırım. Hatalı harf sayısı yerine ve fazla harfe gore sanırım cok karıstırıcak makroyu ama genel olarak tutmayan harfleri bulabiliyorsa 1 yada 2 hataya kadar belirtebilir sayısal ama cok zor ise o zaman hatalı harf sayısı iptal edilebilir..

Verdiginiz ornek te de bu mantıkta ;

1- Kasket yerine kaset ...... yanlıs .... eksik harf
2- Yalnız yerine yanlız........ yanlıs ..... yer degisiklgi
3- Bavul yerine davul......... yanlıs ...... yanlıs harf

Umarım anlatabilmisimdir ve cozumu vardır :)

Tesekkurler..
 
Katılım
24 Nisan 2005
Mesajlar
3,672
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Örnek dosyayı dosya.tc ye yükler misiniz?
 

umitumit

Altın Üye
Katılım
5 Eylül 2006
Mesajlar
364
Excel Vers. ve Dili
Excel 2016
Türkçe
Altın Üyelik Bitiş Tarihi
13-07-2028
Sayın cevrens;

Ekli dosyada birşeyler yapmaya çalıştım.
-En fazla 15 harften oluşan kelimelere kadar hesaplama yapabilir. harf sayısını arttırmak isterseniz formülü inceleyip kendiniz ekleme yapabilirsiniz.
-Orjinal ve Alıştırma arasında harf sayısında farklılık varsa; bunu size söylüyor ve sonucu YANLIŞ olarak değerlendiriyor.
-Hatalı harf sayısını buluyor.
-Alt kısımda, Slav dili tablosuna eklemeler yaptım.

İyi çalışmalar
 

Ekli dosyalar

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,020
Excel Vers. ve Dili
2013 Türkçe
Sub Hata_Bul()
Application.ScreenUpdating = False
Range("I2:J100") = Range("B2:C100").Value
For i = 2 To 14
Range("I2:J100").Replace Cells(i, 14), Cells(i, 15)
Next

For i = 2 To 100
If Cells(i, 9) = "" Then
Range("I2:J100") = ""
Exit Sub
End If
a = 0
If Cells(i, 9) = Cells(i, 10) Then
Cells(i, 4) = "DOĞRU"
Cells(i, 5) = "-"
GoTo 10
End If
For k = 1 To Len(Cells(i, 9))
If Mid(Cells(i, 9), k, 1) <> Mid(Cells(i, 10), k, 1) Then
Cells(i, 3).Characters(Start:=k, Length:=1).Font.ColorIndex = 3
a = a + 1
End If
Next k
Cells(i, 5) = a
Cells(i, 4) = "YANLIŞ"
10
Next i


End Sub
Kodlar geliştirilebilir
 

Ekli dosyalar

Katılım
17 Kasım 2007
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 English
Altın Üyelik Bitiş Tarihi
24.02.2018
Kodlar geliştirilebilir
Muhammet hocam,

öncelikle gec geri donus yaptıgım icin uzgunum.

Makronuz kesinlikle tam düsündügüm gibi calısmaktadır. Yalnız size kesit olarak verdigim excel örnek uzerinden yaptıgınız makroyu orjinal tabloya uyarlayamadım bir türlü,biraz komplike durumlar oldu.. Orjinal tablo nun boyutu cok fazla oldugu icin size ekte daha önce gonderdiginiz excel tablosunun ORJINAL isimli 2.sayfasına orjinalden aldıgım parcayı gonderiyorum. Satır ve sutunları birebir tutuyor,ordan yardımınızla uyarlama yapabilirim.

** Satır sayımız 5004
** ilk tablodaki B,C,D,E kolonları "ORJINAL" sayfada sarı ve yesil ile boyadıgım H,N,Q,R kolonlarına denk geliyor.
** N2:O14 deki kaynak harfler de "ORJINAL" sayfada BA5:BB33 de bulunuyor.

Tekrar yardiminizi rica eder ,simdiden tesekkurlerimi iletirim.
Not : (Umit Bey'e formul destegi icin tesekkurler ama makro ile buyuk tabloda daha az sıkıntı yasayacagım.)
 

Ekli dosyalar

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,020
Excel Vers. ve Dili
2013 Türkçe
Merhaba,
Sub Hata_Bul2()
Application.ScreenUpdating = False
Range("H5:H5004").Font.ColorIndex = 1
Range("N5:N5004").Font.ColorIndex = 1
Range("AA5:AA5004") = Range("H5:H5004").Value
Range("AB5:AB5004") = Range("N5:N5004").Value
For i = 5 To 17
Range("AA5:AA5004").Replace Cells(i, 53), Cells(i, 54)
Range("AB5:AB5004").Replace Cells(i, 53), Cells(i, 54)
Next

For i = 5 To 5004
If Cells(i, 27) = "" Then
Range("AA5:AB5004") = ""
Exit Sub
End If
a = 0
If Cells(i, 27) = Cells(i, 28) Then
Cells(i, 17) = "DOĞRU"
Cells(i, 18) = "-"
GoTo 10
End If
For k = 1 To Len(Cells(i, 27))
If Mid(Cells(i, 27), k, 1) <> Mid(Cells(i, 28), k, 1) Then
Cells(i, 14).Characters(Start:=k, Length:=1).Font.ColorIndex = 3
a = a + 1
End If
Next k
Cells(i, 17) = a
Cells(i, 18) = "YANLIŞ"
10
Next i


End Sub
Kodları deneyiniz.
 
Katılım
17 Kasım 2007
Mesajlar
88
Excel Vers. ve Dili
Excel 2010 English
Altın Üyelik Bitiş Tarihi
24.02.2018
Merhaba,

Kodları deneyiniz.
Muhammet hocam,
Cok tesekkurler,uyarlamasını da yaptım.Sorunsuz calısıyor..
Son birsey daha rica etsem.Tabi uzerinden calısınca farkettim. YANLIS ve DOGRU lar da sıkıntı yok. Bir de hic bilemedigim ve tamamen bos bıraktıgım hucreleri de BOS olarak degerlendirip BOS yazsa. (Suanki durumda YANLIS olarak kabul ediyor.)

Tekrar tesekkur ediyorum,kolay geisin.
 

Muhammet Okumuş

Destek Ekibi
Destek Ekibi
Katılım
28 Eylül 2007
Mesajlar
4,020
Excel Vers. ve Dili
2013 Türkçe
Sub Hata_Bul()
Application.ScreenUpdating = False
Range("H5:H5004").Font.ColorIndex = 1
Range("N5:N5004").Font.ColorIndex = 1
Range("AA5:AA5004") = Range("H5:H5004").Value
Range("AB5:AB5004") = Range("N5:N5004").Value
For i = 5 To 17
Range("AA5:AA5004").Replace Cells(i, 53), Cells(i, 54)
Range("AB5:AB5004").Replace Cells(i, 53), Cells(i, 54)
Next

For i = 5 To 5004
If Cells(i, 27) = "" Then
Range("AA5:AB5004") = ""
Exit Sub
End If
If Cells(i, 28) = "" Then
Cells(i, 17) = "BOŞ"
Cells(i, 18) = ""
GoTo 10
End If
a = 0
If Cells(i, 27) = Cells(i, 28) Then
Cells(i, 17) = "DOĞRU"
Cells(i, 18) = "-"
GoTo 10
End If
For k = 1 To Len(Cells(i, 27))
If Mid(Cells(i, 27), k, 1) <> Mid(Cells(i, 28), k, 1) Then
Cells(i, 14).Characters(Start:=k, Length:=1).Font.ColorIndex = 3
a = a + 1
End If
Next k
Cells(i, 17) = a
Cells(i, 18) = "YANLIŞ"
10
Next i


End Sub
Deneyiniz.
 
Üst