• DİKKAT

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

Hücre İçindeki Tekrar Eden Kelimelerin Teke İndirilmesi

Katılım
10 Kasım 2016
Mesajlar
51
Excel Vers. ve Dili
Office365
Merhaba,

Hücre içinde tekrar eden kelimelerin teke düşürülmesini formülle nasıl yapabilirim ? Önce metin böl veya metni sütunlara dönüştür ile yapabiliyorum ama biraz uğraştırıyor.
Daha kısa bir yolu var mı ?


Mevcut Hali

Olması Gereken

Köşebent,Köşebent,Köşebent,

Köşebent

Palet Şerit Palet

Palet Şerit
 
Tüm satırlarda tekrar eden kelimeleri Veri sekmesinden düşürebiliyorsunuz ancak hücre içerisi için bildiğim kadarıyla bir formül yok...
Yaptığınız en mantıklısı bence de, önce bölüp sonra farklıları silmek..

Bölme sonrasında yinelenenleri kaldır deseniz bu seferde altlarda olması gerekenleri de siler benzer olduğu için..Bunu satır satır değerlendirmeniz gereklidir.
 
Merhaba,
Kullanıcı tanımlı fonksiyon kullanmak isterseniz aşağıdaki kodları bir modüle kopyalayıp deneyiniz.
Kullanımı : =TekrarSil(A1) gibi

Kod:
Function TekrarSil(rng As Range) As String

Dim coll    As New Collection
Dim t       As String, _
    txt     As String, _
    i       As Integer, _
    d       As Variant

t = rng.Text
t = Replace(t, ",", " ")
t = Application.WorksheetFunction.Trim(t)

d = Split(t, " ")

If Not IsArray(d) Then
    TekrarSil = t
Else
    For i = LBound(d) To UBound(d)
        On Error Resume Next
        coll.Add d(i), d(i)
        On Error GoTo 0
    Next i
    For i = 1 To coll.Count
        txt = txt & " " & coll.Item(i)
    Next i
    txt = Application.WorksheetFunction.Trim(txt)
End If

TekrarSil = txt

End Function
 
Benzer bir konu...

 
Alternatif bir KTF;

Ayıraç olarak virgül kullandım. Siz kendinize göre revize edebilirsiniz.

Bu şekilde kullanabilirsiniz. =Remove_Duplicate_Text(A1)

C++:
Option Explicit

Function Remove_Duplicate_Text(Rng As Range, Optional Seperator As String = ",")
    Dim My_Text As Variant
    
    Application.Volatile True
    
    With VBA.CreateObject("Scripting.Dictionary")
        For Each My_Text In Split(Rng.Value, Seperator)
            If My_Text <> "" And Not .Exists(My_Text) Then
                .Add My_Text, Nothing
            End If
        Next
        If .Count > 0 Then
            Remove_Duplicate_Text = VBA.Join(.Keys, Seperator)
        Else
            Remove_Duplicate_Text = ""
        End If
    End With
End Function
 
İlginiz ve yardımlarınız için çok teşekkür ederim. Sonuç tam olarak istediğim gibi oldu. Elinize sağlık.
 
Alternatif olarak; Google Sheets'de aşağıdaki resimde görüldüğü gibi formülle yapılabiliyor.

Formülü Office365'e uyarlayabilirsiniz belki işe yarar...


Capture.PNG


.
 
Geri
Üst