[]

Excel sorusu
Her satırda bir kelime var. Bu kelimeler arasındaki ortak kısımları nasıl bulabilirim?
Örnek
tomb
womb
"omb" kısmı ortak.
Tekrar eden ifadeler de denebilir belki. Bu açıdan da bakılabilir.
Örnek
tomb
womb
"omb" kısmı ortak.
Tekrar eden ifadeler de denebilir belki. Bu açıdan da bakılabilir.

text distance mi ölçmek istiyorsun? örneğin google'ın "bunu mu demek istiyorsunuz" algoritmasının temelinde buna benzer algoritmalar yatar.
anthonysmoak.com
en.wikipedia.org
anthonysmoak.com
en.wikipedia.org
- altinci nesil caylak
(06.01.22 08:05:22 ~ 08:05:36)

@altinci nesil caylak, açıkladığım şeyi yapmak istiyorum. Daha basit yöntemler arıyorum ama sanırım yok.
- dissendium
(06.01.22 12:19:35)

sadece 2 kelime arasındaki ortak harfleri mi alacaksınız?
tombala
bombastik
burada ne gelmesini bekliyorsunuz? yani sadece omba'nin yeri tutuyor diye onu mu? misal 2 kelimedeki t'ye ne olacak? ilk kelimedeki 2 a var o ne olacak? detay verirseniz daha doğru olur diye düşünüyorum.
tombala
bombastik
burada ne gelmesini bekliyorsunuz? yani sadece omba'nin yeri tutuyor diye onu mu? misal 2 kelimedeki t'ye ne olacak? ilk kelimedeki 2 a var o ne olacak? detay verirseniz daha doğru olur diye düşünüyorum.
- altinci nesil caylak
(06.01.22 12:45:04 ~ 12:49:20)

@altinci nesil caylak, hocam kelimelerin bir baştan bir de sondan ortak kısımlarımı bulmak istiyorum.
adoption, allegation, burada tion kısmı ortak
Yazdığınız örnekte ortak kısım içte. Onu istemiyorum. Ama mantık olarak işime yarayabilir. "Omba" kısmının bulunmasını istiyorum.
Sadece iki kelime değil. Onlarca kelime var. Bu iş bu şekilde çözülemeyecek gibi.
Teşekkür ederim.
adoption, allegation, burada tion kısmı ortak
Yazdığınız örnekte ortak kısım içte. Onu istemiyorum. Ama mantık olarak işime yarayabilir. "Omba" kısmının bulunmasını istiyorum.
Sadece iki kelime değil. Onlarca kelime var. Bu iş bu şekilde çözülemeyecek gibi.
Teşekkür ederim.
- dissendium
(06.01.22 13:02:18)

aşağıdaki fonksiyonu macro olarak kaydedip;
a1'e tombala, b1'e bombastik yazıp, c1'e de =FindCommonChar(A1;B1;false) formülü koyarsanız baştan, =FindCommonChar(A1;B1;true) koyarsanız sondan kontrol eder. bu fonksiyon baştan veya sonran her iki kelimede aynı sıradaki harfleri getirir. aynı sırada eşit olmayandan harften sonra aynı sırada eşit harf varsa onu da getirir.
tombala & bombastik -> baştan : omba
mastik & bombastik -> sondan : astik
tomkala & bombastik -> baştan : oma
Function FindCommonChar(a As String, b As String, isReverse As Boolean)
aStr = ""
For I = 1 To IIf(Len(a) > Len(b), Len(b), Len(a))
If Mid(IIf(isReverse, StrReverse(a), a), I, 1) = Mid(IIf(isReverse, StrReverse(b), b), I, 1) Then aStr = aStr & Mid(IIf(isReverse, StrReverse(a), a), I, 1)
Next I
FindCommonChar = IIf(isReverse, StrReverse(aStr), aStr)
End Function
a1'e tombala, b1'e bombastik yazıp, c1'e de =FindCommonChar(A1;B1;false) formülü koyarsanız baştan, =FindCommonChar(A1;B1;true) koyarsanız sondan kontrol eder. bu fonksiyon baştan veya sonran her iki kelimede aynı sıradaki harfleri getirir. aynı sırada eşit olmayandan harften sonra aynı sırada eşit harf varsa onu da getirir.
tombala & bombastik -> baştan : omba
mastik & bombastik -> sondan : astik
tomkala & bombastik -> baştan : oma
Function FindCommonChar(a As String, b As String, isReverse As Boolean)
aStr = ""
For I = 1 To IIf(Len(a) > Len(b), Len(b), Len(a))
If Mid(IIf(isReverse, StrReverse(a), a), I, 1) = Mid(IIf(isReverse, StrReverse(b), b), I, 1) Then aStr = aStr & Mid(IIf(isReverse, StrReverse(a), a), I, 1)
Next I
FindCommonChar = IIf(isReverse, StrReverse(aStr), aStr)
End Function
- altinci nesil caylak
(06.01.22 13:24:02)
1