[q]
(6) 

Excel sorusu

dissendium #1508971
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.

 

officepowerups.com

şuna bi göz atın.

sttc

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

altinci nesil caylak

@altinci nesil caylak, açıkladığım şeyi yapmak istiyorum. Daha basit yöntemler arıyorum ama sanırım yok.

dissendium

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.

altinci nesil caylak

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

dissendium

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

altinci nesil caylak
1

mobil görünümden çık