Çerezler bize hizmetleri sunmak yardımcı olur. Hizmetlerimizi kullanarak, çerez kullanmamızı kabul etmiş olursunuz.
İpucu: Diğer diller Google Çeviri'dir. Ziyaret edebilirsiniz English Bu linkin sürümü.
Oturum aç
x
or
x
x
Şimdi Kayıt Olun
x

or

Bir hücrenin dize içindeki yinelenen karakterleri veya kelimeleri kaldırmak için?

Her bir hücrede yinelenen karakterler veya kelimeler olduğunu varsayarak, kopyaları kaldırıp yalnızca benzersiz karakter veya kelimeleri bırakmak istiyorsunuz. Bu sorunu Excel'de nasıl çözebilirsin?

Kullanıcı Tanımlı İşleviyle metin dizesinin yinelenen karakterlerini kaldırma

Kullanıcı Tanımlı İşleviyle noktalamayla ayrılmış yinelenen kelimeleri kaldırma


Bir sütundaki yinelenen değerleri seçin ve ardından bir kerede kaldırın:

İle Kutools for Excel'S Çoğalt ve Benzersiz Hücreleri Seç özelliği sayesinde, bir aralıktaki çoğaltılmış veya benzersiz değerleri hızlı bir şekilde seçebilir ve vurgulayabilir ve daha sonra bunları istediğiniz gibi kaldırıp biçimlendirebilirsiniz.

doc her iki kopyayı da kaldır 15 15


arrow mavi sağ balon Kullanıcı Tanımlı İşleviyle metin dizesinin yinelenen karakterlerini kaldırma


Metin dizesinin bir listeniz varsa, şimdi, aşağıdaki ekran görüntüsü gibi çoğaltılan karakterleri kaldırmanız gerekir. Burada, onunla başa çıkabilmek için bir VBA kodu hakkında konuşabilirim.

doc-remove-yinelenen-karakterler-1

1. Tuşunu basılı tutun. ALT + F11 tuşlarını açmak için Microsoft Visual Basic for Applications penceresi.

2. tıklayın Ekle > modülve aşağıdaki kodu yapıştırın: Modül Penceresi.

VBA kodu: Bir hücredeki metin dizesinin yinelenen karakterlerini kaldırın

Function RemoveDupes1(pWorkRng As Range) As String
'Updateby20140924
Dim xValue As String
Dim xChar As String
Dim xOutValue As String
Set xDic = CreateObject("Scripting.Dictionary")
xValue = pWorkRng.Value
For i = 1 To VBA.Len(xValue)
    xChar = VBA.Mid(xValue, i, 1)
    If xDic.Exists(xChar) Then
    Else
        xDic(xChar) = ""
        xOutValue = xOutValue & xChar
    End If
Next
RemoveDupes1 = xOutValue
End Function

3. Ardından kaydedin ve bu kodu kapatın, çalışma sayfasına dönün ve bu formülü girin = Removedupes1 (A2) (A2 kopyalarınızı kaldırmak istediğiniz veri hücresidir) verilerinizin yanında boş bir hücreye dönüştürebilirsiniz, ekran görüntüsüne bakın:

doc-remove-yinelenen-karakterler-1

4. Ve sonra da bu formülü uygulamak istediğiniz hücre aralığına dolgu tutamacını sürükleyin, böylece tüm yinelenen karakterler her hücreden derhal kaldırılır.

doc-remove-yinelenen-karakterler-1


arrow mavi sağ balon Kullanıcı Tanımlı İşleviyle noktalamayla ayrılmış yinelenen kelimeleri kaldırma

Bir hücrede belirli noktalama işaretleriyle ayrılmış bazı kelimeler varsa, yinelenen kelimeleri istediğiniz gibi kaldırabilirsiniz. Lütfen aşağıdaki adımları uygulayın:

1. basılı tutun ALT + F11 tuşlarını açmak için Microsoft Visual Basic for Applications penceresi.

2. tıklayın Ekle > modülve aşağıdaki kodu yapıştırın: Modül Penceresi.

VBA kodu: Bir hücrenin noktalama işaretleriyle ayrılmış olan yinelenen kelimeleri kaldırma

Function RemoveDupes2(txt As String, Optional delim As String = " ") As String
    Dim x
    'Updateby20140924
    With CreateObject("Scripting.Dictionary")
        .CompareMode = vbTextCompare
        For Each x In Split(txt, delim)
            If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
        Next
        If .Count > 0 Then RemoveDupes2 = Join(.keys, delim)
    End With
End Function

3. Ardından kaydedin ve bu kodu kapatın, çalışma sayfasına dönün ve bu formülü girin = RemoveDupes2 (A2, "") verilerinizin yanındaki boş bir hücreye ekran görüntüsüne bakın:

doc-remove-yinelenen-karakterler-1

4. Ardından formülü gerekli hücrelerinize kopyalayın ve tüm hücrelerden tüm yinelenen kelimeler kaldırılır. Ekran görüntüsüne bakın:

doc-remove-yinelenen-karakterler-1

notlar: Yukarıdaki formülde, A2 , kullanmak istediğiniz hücreyi belirtir ve virgül (,) bir hücredeki kelimeleri ayıran noktalama işareti anlamına gelir, ihtiyacınız olan diğer noktalamaları değiştirebilirsiniz.



Önerilen Üretkenlik Araçları

Office Tab

altın yıldız1 Kullanışlı sekmeleri Excel, diğer Office yazılımlarına da tıpkı Chrome, Firefox ve yeni Internet Explorer gibi getirin.

Kutools for Excel

altın yıldız1 Şaşırtıcı! 5 dakika içinde üretkenliğinizi artırın. Herhangi bir özelliğe ihtiyacınız yoktur, her gün iki saat tasarruf edin!

altın yıldız1 300 Excel için Yeni Özellikler, Excel'i Çok Kolay ve Güçlü Yapın:

  • Hücre / Satırları / Sütunları Veri Kaybetmeden Birleştirin.
  • Birden Çok Levha ve Çalışma Kitabını Birleştirin ve Konsolide edin.
  • Aralıkları Karşılaştırma, Birden Fazla Aralık Kopyalama, Metni Tarihe Dönüştürme, Birim ve Para Birimi Dönüştürme.
  • Renklere Göre Sayma, Sayfalık Toplamlar, Gelişmiş Sıralama ve Süper Filtre,
  • Daha Seç / Ekle / Sil / Metin / Biçim / Bağlantı / Açıklama / Çalışma Kitabı / Çalışma Sayfası Araçları ...

Kutools for Excel&#39;in ekran görüntüsü

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Bill Davis · 22 days ago
    I have been using the VBA code: Remove duplicate words separated by punctuation of a cell RemoveDupes2 logic for some time now and I recently had my machine upgraded to O365 and when running this same process, I get an error on my cell. Instead of returning the values I expect, I am getting the #Value! error in the cell.

    I'm not too savy on writing formulas or using the VB logic, so not sure where to start, any guidance would be helpful.
  • To post as a guest, your comment is unpublished.
    NeedExcelHelp · 4 months ago
    What about removing duplicate addresses. If I have a cell that says "123 Address St. 123 Address St." How can I select only the first address when I have many cells with different addresses in each of them?
  • To post as a guest, your comment is unpublished.
    Suraj Singh · 4 months ago
    Can we removed the duplicate from in single cell tax . like as per below tax the highlighted tax is duplicate.

    C2/1104, SUMMER PALM SECTOR 86 C2/1104, SUMMER PALM FARIDABAD HARYANA India
  • To post as a guest, your comment is unpublished.
    Angshuman Pradhan · 5 months ago
    how to save =RemoveDupes2 this formula in excel 2007
    • To post as a guest, your comment is unpublished.
      skyyang · 5 months ago
      Hello, Pradhan,
      To save this formula for using next time, you should save the workbook as Excel Macro-Enabled Workbook file format.
      Please try it, hope it can help you!
  • To post as a guest, your comment is unpublished.
    Alonso · 6 months ago
    Thanks for the code.

    Can you please help me? I am using the macro function to remove words separated by punctuation of a cell, however my data is not words is actually phrases. Like instead of "KTE, KTO, KTW, KTO" is actually short descriptions like "prepare a bill, review my emails, update the contracts, review my emails".

    Would it be possible to update the VBA to remove duplicated phrases instead of words?

    Many thanks, this will be actually very helpful.
    • To post as a guest, your comment is unpublished.
      skyyang · 5 months ago
      Hi, Alonso,
      To remove duplicate phrase, the following User Defined Function may help you, please try it.

      Function RemoveDuplicateValue(xStr As String, xDelim As String) As String
      Dim xValue
      If (Len(xDelim) > 0) And (Len(Trim(xStr)) > 0) Then
      With CreateObject("Scripting.Dictionary")
      For Each xValue In Split(xStr, xDelim)
      If Trim(xValue) <> "" And Not .exists(Trim(xValue)) Then .Add Trim(xValue), Nothing
      Next
      If .Count > 0 Then RemoveDuplicateValue = Join(.keys, xDelim)
      End With
      Else
      RemoveDuplicateValue = xStr
      End If
      End Function

      Then apply this formula: =RemoveDuplicateValue(A2,","), change the separator , to your own.
      • To post as a guest, your comment is unpublished.
        Michael Wentzell · 4 months ago
        Hello skyyang,



        I am hoping to get some help with the following cell:

        PR-PUERTO RICO; US-UNITED STATES; US-UNITED STATES

        I need the duplicate US-UNITED STATES removed as my upload tool will not allow for duplicates.



        I used the above VBA and replaced my formula deliminator with ";". Is the hyphen causing this to have an issue? It returns #NAME? whenever I run the formula. I am new to macros/VBA but I made sure the file was saved as a Macro Enabled file. I really tried to follow these to the T.


        Thank you for all of this already great information as it has helped with another project I had to complete as well and anything additional is greatly appreciated.
        • To post as a guest, your comment is unpublished.
          skyyang · 4 months ago
          Hi, Michael,
          Do you mean to remove all duplicate phrases from a cell, and only leave the unique ones?
          Look forward to your reply!
          • To post as a guest, your comment is unpublished.
            Michael Wentzell · 4 months ago
            This is the output I am looking for:

            Current: PR-PUERTO RICO; US-UNITED STATES; US-UNITED STATES
            Desired: PR-PUERTO RICO; US-UNITED STATES

            Hope this makes sense and thank you very much for the quick reply.
            • To post as a guest, your comment is unpublished.
              skyyang · 4 months ago
              Hi, Michael,
              You just need to apply the below code, and then use this formula: =RemoveDuplicateValue(A2,";"). Please try, hope it can help you!

              Function RemoveDuplicateValue(xStr As String, xDelim As String) As String
              Dim xValue
              If (Len(xDelim) > 0) And (Len(Trim(xStr)) > 0) Then
              With CreateObject("Scripting.Dictionary")
              For Each xValue In Split(xStr, xDelim)
              If Trim(xValue) <> "" And Not .exists(Trim(xValue)) Then .Add Trim(xValue), Nothing
              Next
              If .Count > 0 Then RemoveDuplicateValue = Join(.keys, xDelim)
              End With
              Else
              RemoveDuplicateValue = xStr
              End If
              End Function