• DİKKAT

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

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
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

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?
 
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..
 
Örnek dosyayı dosya.tc ye yükler misiniz?
 
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

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

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

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.
 
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.
 
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.
 
Geri
Üst