Aynı harflerden oluşan kelimeleri bulma

Katılım
28 Şubat 2017
Mesajlar
69
Excel Vers. ve Dili
2016 Türkçe
bir excel dosyası oluşturdum. türkçedeki bütün 5 harfli kelimeleri içeriyor. yapmak istediğim şu bu listedeki aynı harflari içeren kelimeleri bulmak istiyorum. örnek veriyorum
exceli çalıştırıp kelimeleri bul dediğimde aynı harfteki kelimeleri bulmasını istiyorum mesela
Sıfır,fısır
anlam,alman... gibi bunu nasıl yapabilirim yardımcı olma şansınız var mı?
 
Katılım
8 Aralık 2017
Mesajlar
27
Excel Vers. ve Dili
2010-Türkçe
Altın Üyelik Bitiş Tarihi
29-01-2020
Merhabalar,

Konuyu tam olarak anlamadım ama excel dosyanıza girip CTRL+F tuşuna basıp istediğiniz kelimeyi yazıp tümünü bul dediğinizde aradığınız kelimelerin hücrelerini size göstermektedir.

Saygılarımla
 

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,514
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
A Sütununda 5 Karakter Uzunluğunda Olan ve Yerleri Karışık Bile Olsa Aynı Karakterleri Barındıran Kelimeleri
Kendi Aralarında Gruplayan Program yüklü Dosya Ek' tedir.

Selamlar.. :)
 

Ekli dosyalar

Son düzenleme:

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,514
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Dosyayı indiremiyorum altın üye olmalısınız diyor :(
O zaman kodları aşağıya yazıyorum.

Aşağıdaki kodları modul sayfasına akleyip çalıştırırsanız isteğinize uygun grup bilgileri B ve C sütunlarında listelenecektir.
Selamlar...

Sub A_Sütunundaki_Aynı_Karakterli_Kelimeleri_gruplandır()
'03.01.2019 08:48
Dim dizi()

Zaman = Timer


Columns(2).ClearContents
Columns(3).ClearContents
'Columns(4).ClearContents

timer1 = Timer
Do While Timer - timer1 < 0.3
Loop

sona = Cells(Rows.Count, 1).End(3).Row

ReDim dizi(sona, 6)

For i = 1 To Cells(Rows.Count, 1).End(3).Row

If Len(Trim(Cells(i, 1))) = 5 Then

dizi(i, 0) = LCase(Trim(Cells(i, 1)))
dizi(i, 1) = Mid(dizi(i, 0), 1, 1)
dizi(i, 2) = Mid(dizi(i, 0), 2, 1)
dizi(i, 3) = Mid(dizi(i, 0), 3, 1)
dizi(i, 4) = Mid(dizi(i, 0), 4, 1)
dizi(i, 5) = Mid(dizi(i, 0), 5, 1)

For k1 = 1 To 5
For k2 = 1 To 5

If dizi(i, k1) < dizi(i, k2) Then
bos1 = dizi(i, k1)
dizi(i, k1) = dizi(i, k2)
dizi(i, k2) = bos1
End If

Next
Next

For k3 = 1 To 5

dizi(i, 6) = dizi(i, 6) & dizi(i, k3)

Next

' Cells(i, 2) = dizi(i, 6)

Else

' Cells(i, 2) = " DİKKAT! : Yan Hücredeki değerin Karakter Uzunluğu 5 Karakter Değildir"

End If

Next
For ii = 1 To sona

grup1 = grup1 + 1
var1 = 0
sayyy1 = 0

For jj = ii + 1 To sona

If dizi(ii, 6) = dizi(jj, 6) And Cells(jj, 2) = "" And Len(dizi(ii, 6)) = 5 Then

var1 = 1
sayyy1 = sayyy1 + 1
Cells(ii, 2) = "Grup " & grup1
Cells(jj, 2) = "Grup " & grup1

If sayyy1 = 1 Then
Cells(grup1, 3) = Cells(ii, 1) & "." & Cells(jj, 1)
Else
Cells(grup1, 3) = Cells(grup1, 3) & "." & Cells(jj, 1)
End If
' MsgBox ii

End If

Next

If var1 = 0 Then grup1 = grup1 - 1

Next



Bitis = Chr(10) & "(İşlem Süresi : " & Format(Timer - Zaman, "00:00") & " dakika)"

If grup1 > 0 Then
MsgBox grup1 & " adet farklı grup tespit edildi" & Chr(10) & Chr(10) & "Gruplama Tamamlandı" & Bitis, , " Microsoft Excel - Mutluluk Sizinle Olsun"
Else
MsgBox "A Sütununda 5 Karakterli olup Aynı Karakterleri Barındıran hücreler bulunmamaktadır." & Chr(10) & Chr(10) & "Hiç Grup Oluşturulamadı", , " Microsoft Excel - Mutluluk Sizinle Olsun"
End If

End Sub
 
Son düzenleme:
Katılım
28 Şubat 2017
Mesajlar
69
Excel Vers. ve Dili
2016 Türkçe
O zaman kodları aşağıya yazıyorum.

Aşağıdaki kodları modul sayfasına akleyip çalıştırırsanız isteğinize uygun grup bilgileri B sütununda listelenecektir.
Selamlar...

Sub A_Sütunundaki_Aynı_Karakterli_Kelimeleri_gruplandır()
'03.01.2019 08:48
Dim dizi()

Columns(2).ClearContents
'Columns(3).ClearContents

timer1 = Timer
Do While Timer - timer1 < 0.3
Loop

sona = Cells(Rows.Count, 1).End(3).Row

ReDim dizi(sona, 6)

For i = 1 To Cells(Rows.Count, 1).End(3).Row

If Len(Trim(Cells(i, 1))) = 5 Then

dizi(i, 0) = LCase(Trim(Cells(i, 1)))
dizi(i, 1) = Mid(dizi(i, 0), 1, 1)
dizi(i, 2) = Mid(dizi(i, 0), 2, 1)
dizi(i, 3) = Mid(dizi(i, 0), 3, 1)
dizi(i, 4) = Mid(dizi(i, 0), 4, 1)
dizi(i, 5) = Mid(dizi(i, 0), 5, 1)

For k1 = 1 To 5
For k2 = 1 To 5

If dizi(i, k1) < dizi(i, k2) Then
bos1 = dizi(i, k1)
dizi(i, k1) = dizi(i, k2)
dizi(i, k2) = bos1
End If

Next
Next

For k3 = 1 To 5

dizi(i, 6) = dizi(i, 6) & dizi(i, k3)

Next

' Cells(i, 2) = dizi(i, 6)

Else

' Cells(i, 2) = " DİKKAT! : Yan Hücredeki değerin Karakter Uzunluğu 5 Karakter Değildir"

End If

Next
For ii = 1 To sona

grup1 = grup1 + 1
var1 = 0

For jj = ii + 1 To sona

If dizi(ii, 6) = dizi(jj, 6) And Cells(jj, 2) = "" And Len(dizi(ii, 6)) = 5 Then

var1 = 1
Cells(ii, 2) = "Grup " & grup1
Cells(jj, 2) = "Grup " & grup1
' MsgBox ii

End If

Next

If var1 = 0 Then grup1 = grup1 - 1

Next

If grup1 > 0 Then
MsgBox grup1 & " adet farklı grup tespit edildi" & Chr(10) & Chr(10) & "Gruplama Tamamlandı", , " Microsoft Excel - Mutluluk Sizinle Olsun"
Else
MsgBox "A Sütununda 5 Karakterli olup Aynı Karakterleri Barındıran hücreler bulunmamaktadır." & Chr(10) & Chr(10) & "Hiç Grup Oluşturulamadı", , " Microsoft Excel - Mutluluk Sizinle Olsun"
End If

End Sub
hocam cevabınız için teşekkürler. çalıştırdığımda kelimleri gruplandırıyor evet ancak bu şekilde kastetmemiştim. ingilizce kelimeden örnek vereyim size
ALERT.LATER.ALTER
ABETS.BEATS.BEAST
ANGEL.ANGLE.GLEAN
COATS.COAST.TACOS
RATES.STARE.TEARS

buradaki gibi aynı harflerden oluşan kelimeleri aralarına nokta koyarak yan yana yazmak istiyorum. eğer yardımcı olursanız benı cok mutlu edersiniz tekrar teşekkürler
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Selamlar,
Hazırladığım örneği deneyiniz.
Kod:
Sub kelimebul2()
Zaman = Timer
Columns(3).ClearContents
sonsat = Cells(Rows.Count, 1).End(3).Row
'sonsat2 = Cells(Rows.Count, 2).End(3).Row
For i = 1 To sonsat
Aranan = Cells(i, 1)
For x = 1 To sonsat
UAranan = Len(Aranan)
klm = Cells(x, 1)
If UAranan = Len(Cells(x, 1)) Then
    For y = 1 To UAranan
        hrf = Mid(Aranan, y, 1)
        klm = WorksheetFunction.Substitute(klm, hrf, "", 1)
    Next
    If klm = "" Then
        mtn = mtn & "." & Cells(x, 1)
    End If
End If
Next
If Len(mtn) > 6 Then
If sat = "" Then sat = 1
say = WorksheetFunction.CountIf(Range("c1:c" & sat), mtn)
If say = 0 Then
sat = sat + 1
Cells(sat, 3) = mtn
End If
End If
mtn = ""
Next
Bitis = Chr(10) & "İşlemin tamamlanma süresi: " & Format(Timer - Zaman, "00:00") & " dakika"
MsgBox "İşlem tamamlandı." & Bitis, vbOKOnly, "l e u m r u k"
End Sub
kelime-bul dosyası
 

Ekli dosyalar

Son düzenleme:
Katılım
28 Şubat 2017
Mesajlar
69
Excel Vers. ve Dili
2016 Türkçe
Selamlar,
Hazırladığım örneği deneyiniz.
Kod:
Sub kelimebul()
Zaman = Timer
Columns(3).ClearContents
sonsat = Cells(Rows.Count, 1).End(3).Row
sonsat2 = Cells(Rows.Count, 2).End(3).Row
For i = 1 To sonsat2
Aranan = Cells(i, 2)
For x = 1 To sonsat
UAranan = Len(Aranan)
klm = Cells(x, 1)
If UAranan = Len(Cells(x, 1)) Then
    For y = 1 To UAranan
        hrf = Mid(Aranan, y, 1)
        klm = WorksheetFunction.Substitute(klm, hrf, "", 1)
    Next
    If klm = "" Then
        mtn = mtn & "." & Cells(x, 1)
    End If
End If
Next
Cells(i, 3) = mtn
mtn = ""
Next
Bitis = Chr(10) & "İşlemin tamamlanma süresi: " & Format(Timer - Zaman, "00:00") & " dakika"
MsgBox "İşlem tamamlandı." & Bitis, vbOKOnly, "l e u m r u k"
End Sub
kelime-bul dosyası
hocam çalışmadı.
 
Katılım
28 Şubat 2017
Mesajlar
69
Excel Vers. ve Dili
2016 Türkçe
Çalışmadı kısmını biraz açabilirseniz yardımcı olmaya çalışayım.
Sonuç mu üretmedi? İstediğiniz sonucu mu alamadınız? Hata mı verdi? vs...
Sonuc üretmesi hocam. Şöyle yapalım. Excel dosyam bu https://docs.google.com/spreadsheets/d/1fHnPp8yntVLaStgvPQi7XwGerLiiK_XcVqKyaK0sFBw/edit?usp=drivesdk
Ben bu dosyadaki aynı harflerden oluşan kelimeleri bulmak istiyorum. Ve sonuçları aralarında nokta olarak birleşik olarak yazmak istiyorum
Kelime1.kelime2.kelime3 gibi
 

leumruk

Uzman
Uzman
Katılım
15 Nisan 2007
Mesajlar
3,471
Excel Vers. ve Dili
Office 2010 & 2013 tr
Üstteki mesaja 2. bir kodlama ekledim.
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,815
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Sayın ahmetozcan9211,
Her iki dosya da bu Dosyalar bağlantıda. Sanırım Kelime-bul_1 sizin istediğiniz gibi çalışıyor.
Kolay gelsin
 

Ekli dosyalar

kulomer46

Altın Üye
Katılım
23 Mart 2007
Mesajlar
1,514
Excel Vers. ve Dili
Microsoft Office LTSC Professional Plus 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
08-06-2027
Sayın ahmetozcan9211,
Her iki dosya da bu Dosyalar bağlantıda. Sanırım Kelime-bul_1 sizin istediğiniz gibi çalışıyor.
Kolay gelsin
Sayın Tevfik_Kursun arkadaşımızın emeğine sağlık.
Bende kendi dosyamın sizin isteğinize uygun son halini aşağıya ekledim.

Ve yukardaki #5 nolu mesajdada kodların son halini güncelledim.
Ek'li dosyayı indiremezseniz yukarda #5 nolu mesajdaki kodları kopyalayıp uygulayınız.
Selamlar...
 

Ekli dosyalar

Son düzenleme:

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,652
Excel Vers. ve Dili
Pro Plus 2021
Kod:
Sub test()
    Columns(4).ClearContents
    dizi = (WorksheetFunction.Transpose(Range("A1:A" & Cells(Rows.Count, 1).End(3).Row).Value))
    With CreateObject("Scripting.Dictionary")
        For i = LBound(dizi) To UBound(dizi)
            klm = parcalaSirala(dizi(i))
            If Not .exists(klm) Then
                .Item(klm) = dizi(i)
            Else
                .Item(klm) = .Item(klm) & "." & dizi(i)
            End If
        Next i
        For Each itm In .items
            If InStr(itm, ".") Then
                sat = sat + 1
                Cells(sat, 4) = itm
            End If
        Next
    End With
End Sub
Function parcalaSirala(ByVal kelime As String) As String
    ReDim a(Len(kelime))
    For i = 1 To Len(kelime)
        a(i) = Mid(kelime, i, 1)
    Next i
    For i = LBound(a) To UBound(a) - 1
        For ii = i + 1 To UBound(a)
            If StrComp(a(i), a(ii), vbTextCompare) = 1 Then
                ara = a(i)
                a(i) = a(ii)
                a(ii) = ara
            End If
        Next ii
    Next i
    parcalaSirala = Join(a, "")
End Function
 
Son düzenleme:
Katılım
1 Aralık 2017
Mesajlar
222
Excel Vers. ve Dili
Microsoft Office 365 ProPlus
Altın Üyelik Bitiş Tarihi
18-01-2025
bulmacaları macro ilemi çözeceksiniz :)
 

veyselemre

Özel Üye
Katılım
9 Mart 2005
Mesajlar
3,652
Excel Vers. ve Dili
Pro Plus 2021
kullanılan kelimeleri de listeden silmesini de istiyorum bunu nasıl yapabilirim?
Kod:
Sub test()
    Columns(4).ClearContents
    dizi = WorksheetFunction.Transpose(Range("A1:A" & Cells(Rows.Count, 1).End(3).Row).Value)
    Dim w(1 To 2)
    With CreateObject("Scripting.Dictionary")
        For i = LBound(dizi) To UBound(dizi)
            klm = parcalaSirala(dizi(i))
            If Not .exists(klm) Then
                w(1) = dizi(i)
                w(2) = i & ":" & i
                .Item(klm) = w
            Else
                y = .Item(klm)
                y(1) = y(1) & "." & dizi(i)
                y(2) = y(2) & "," & i & ":" & i
                .Item(klm) = y
            End If
        Next i
        For Each itm In .items
            If InStr(itm(1), ".") Then
                sat = sat + 1
                Cells(sat, 4) = itm(1)
                
                adr = itm(2)
                Intersect(Columns(1), Range(adr)).ClearContents
            End If
        Next
    End With
End Sub
Function parcalaSirala(ByVal kelime As String) As String
    ReDim a(Len(kelime))
    For i = 1 To Len(kelime)
        a(i) = Mid(kelime, i, 1)
    Next i
    For i = LBound(a) To UBound(a) - 1
        For ii = i + 1 To UBound(a)
            If StrComp(a(i), a(ii), vbTextCompare) = 1 Then
                ara = a(i)
                a(i) = a(ii)
                a(ii) = ara
            End If
        Next ii
    Next i
    parcalaSirala = Join(a, "")
End Function
 

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,815
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Sayın ahmetozcan9211,
Kulomer46 Hocanın dosyası da Dosyalar bağlantısında. Veyselemre Hocanınkini takip edeyim. Çalıştığında onu da aynı bağlantıya yerleştiririm.
kolay gelsin
 
Son düzenleme:

Tevfik_Kursun

Altın Üye
Katılım
30 Temmuz 2012
Mesajlar
3,815
Excel Vers. ve Dili
Office 2016 Pro - Türkçe 64 Bit
Altın Üyelik Bitiş Tarihi
12-02-2029
Merhaba Veysel Hocam,
Bu noktada syntax error veriyor. Nedeni için bakar mısınız lütfen, arkadaşımıza yardımcı olalım.
Kolay gelsin
 

Ekli dosyalar

Üst