Excel'de bir hücre içindeki kopyalar nasıl kaldırılır

  • Bunu Paylaş
Michael Brown

Excel'de bir hücre içindeki kopyaları bulmanın ve silmenin üç yolu vardır. Sizin için en uygun olanı seçin.

Yinelenen değerleri veya satırları kaldırmak söz konusu olduğunda, Microsoft Excel bir dizi farklı seçenek sunar. Ancak, belirli bir hücre içindeki aynı metni kaldırmak söz konusu olduğunda, Excel... hiçbir şey sağlamaz. Araç yok, özellik yok, formül yok, hiçbir şey yok. Bu bizim amacımıza ulaşmamızı engeller mi? Hiçbir durumda. Excel'de ihtiyacımız olan işlev yoksa, gidip kendi işlevimizi yazalım :)

    Excel hücresinde tekrarlanan kelimeler nasıl kaldırılır

    Problem : Bir hücrede aynı sözcükler veya metin dizeleri var ve ikinci ve sonraki tüm tekrarları kaldırmak istiyorsunuz.

    Çözüm : özel bir kullanıcı tanımlı işlev veya VBA makrosu.

    Bir hücre içindeki kopyaları kaldırmak için kullanıcı tanımlı işlev

    Bir hücredeki yinelenen metni ortadan kaldırmak için aşağıdaki kullanıcı tanımlı işlevi (UDF) kullanabilirsiniz RemoveDupeWords :

    Function RemoveDupeWords(text As String , Optional delimiter As String = " " ) As String Dim dictionary As Object Dim x, part Set dictionary = CreateObject ( "Scripting.Dictionary" ) dictionary.CompareMode = vbTextCompare For Each x In Split(text, delimiter) part = Trim(x) If part "" And Not dictionary.Exists(part) Then dictionary.Add part, Nothing End If Next If dictionary.Count> 0 ThenRemoveDupeWords = Join(dictionary.keys, delimiter) Else RemoveDupeWords = "" End If Set dictionary = Nothing End Function

    İşlevin kodunu çalışma kitabınıza ekleme

    Yukarıdaki kodu Excel'inize eklemek için yapmanız gerekenler şunlardır:

    1. Visual Basic Düzenleyicisini açmak için Alt + F11 tuşlarına basın.
    2. Sol bölmede, sağ tıklayın BuÇalışmaKitabı ve seçin Ekleme > Modül .
    3. Yukarıdaki kodu Kod Pencere.

    Daha fazla bilgi için lütfen Excel'de VBA kodu ekleme bölümüne bakın.

    RemoveDupeWords fonksiyon söz dizimi

    Bir hücredeki yinelenen metni kaldırmak için yeni oluşturduğumuz işlev aşağıdaki sözdizimine sahiptir:

    RemoveDupeWords(text, [delimiter])

    Nerede?

    • Metin (gerekli) - tekrarlanan metni silmek istediğiniz bir dize veya hücre.
    • Sınırlayıcı (isteğe bağlı) - tekrarlanan metnin ayrıldığı sınırlayıcı. Atlanırsa, sınırlayıcı için boşluk kullanılır.

    İşlev şudur büyük/küçük harfe duyarlı değil yani küçük ve büyük harfler aynı karakterler olarak değerlendirilir.

    RemoveDupeWords işlevi nasıl kullanılır?

    İşlevin kodu çalışma kitabınıza eklendikten sonra, Excel'in yerleşik işlevlerini kullandığınız gibi formüllerinizde kullanabilirsiniz.

    Eşittir işaretinden sonra işlevin adını yazmaya başlayın, formül intellisense'inde görünecektir. İşleve çift tıkladığınızda bir hücreye eklenmiş olacaktır. Bağımsız değişkenleri tanımlayın, kapanış parantezini yazın, Enter tuşuna basın ve formülünüz tamamlanmış olsun.

    Örneğin, A2'den virgül ve boşlukla ayrılmış yinelenen sözcükleri silmek için, aşağıdaki formülü B2'ye girin ve ardından gerektiği kadar hücre boyunca aşağı sürükleyin:

    =RemoveDupeWords(A2, ", ")

    Sonuç olarak, benzersiz sözcüklerden veya alt dizelerden oluşan bir listeye sahip olursunuz. virgül ve boşluk :

    Virgülle ayrılmış bir liste almayı tercih ederseniz sadece bir virgül sınırlayıcı için:

    =RemoveDupeWords(A2, ",")

    Kaynak verileriniz bir ile ayrılmışsa uzay ikinci bağımsız değişken " " olmalı veya atlanmalıdır:

    =RemoveDupeWords(A2)

    Diğer Excel işlevlerinde olduğu gibi UDF'miz de kaynak veriler değiştiğinde otomatik olarak yeniden hesaplama yapar, böylece sonuçlarınız her zaman güncel olur.

    Aynı anda birden çok hücreden yinelenen metni silmek için VBA makrosu

    Birden fazla hücreden tekrarlanan metni tek seferde kaldırmak istiyorsanız RemoveDupeWords Bu durumda, sınırlayıcı sabit olarak kodlanır ve sınırlayıcı her değiştiğinde makronun kodunu güncellemeniz gerekir. Alternatif olarak, en yaygın sınırlayıcılar için, örneğin boşluk, virgül veya virgül ve boşluk için birkaç kod varyasyonu yazabilir ve makrolarınıza anlamlı adlar verebilirsiniz, örn. RemoveDupesDelimSpace .

    Makronun kodu aşağıdaki gibidir:

    Public Sub RemoveDupeWords2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeWords(cell.Value, ", " ) Next End Sub

    Yukarıdaki kodda, sınırlayıcı bir virgül ve boşluk Farklı bir sınırlayıcı kullanmak için bu kod satırında ", " yerine başka karakter(ler) kullanın:

    cell.Value = RemoveDupeWords(cell.Value, ", ")

    Not: Makronun çalışması için, kodu ve RemoveDupeWords işlevinin kodu aynı modüle yerleştirilmelidir.

    Makro nasıl kullanılır

    Makronun kodunu kendi çalışma kitabınıza ekleyin veya örnek çalışma kitabımızı kodla birlikte açın ve ardından makroyu çalıştırmak için aşağıdaki adımları uygulayın.

    1. Yinelenen metni kaldırmak istediğiniz bir hücre aralığı seçin.
    2. Açmak için Alt + F8 tuşlarına basın Makro iletişim kutusu.
    3. Makrolar listesinde şunları seçin RemoveDupeWords2 .
    4. Tıklayın Koşmak .

    Daha fazla ayrıntı için lütfen Excel'de makro çalıştırma bölümüne bakın.

    Not: Bir makronun eylemi geri alınamaz makroyu kullanmadan hemen önce çalışma kitabınızı kaydetmenizi şiddetle tavsiye ederiz. Bu şekilde, bir şeyler ters giderse, çalışma kitabını kapatıp yeniden açabilirsiniz ve tam olarak kaldığınız yere geri dönersiniz. Veya makrodan etkilenebilecek çalışma sayfasının / sayfalarının bir kopyasını oluşturabilirsiniz.

    Bir hücredeki yinelenen karakterler nasıl kaldırılır

    Problem : Her hücrede belirli bir karakterin yalnızca tek bir kez geçmesi gerekirken, bir hücrede aynı karakterin birden çok kez geçmesi.

    Çözüm : özel bir kullanıcı tanımlı işlev veya VBA makrosu.

    Tekrarlanan karakterleri silmek için kullanıcı tanımlı fonksiyon

    Bir hücre içinde yinelenen karakterleri yalnızca ilk geçtikleri yerleri koruyarak kaldırmak için aşağıdaki kullanıcı tanımlı işlevi kullanabilirsiniz RemoveDupeChars :

    Function RemoveDupeChars(text As String ) As String Dim dictionary As Object Dim char As String Dim result As String Set dictionary = CreateObject ( "Scripting.Dictionary" ) For i = 1 To Len(text) char = Mid(text, i, 1) If Not dictionary.Exists(char) Then dictionary.Add char, Nothing result = result & char End If Next RemoveDupeChars = result Set dictionary = Nothing End Function

    İşlevin kodunu çalışma kitabınıza eklemek için, adımlar önceki örnektekiyle tamamen aynıdır.

    RemoveDupeChars fonksiyon söz dizimi

    Bu özel fonksiyonun söz dizimi olabildiğince basittir - sadece bir argüman gereklidir:

    RemoveDupeChars(metin)

    Nerede Metin yinelenen karakterleri kaldırmak istediğiniz bir dize veya hücredir.

    İşlev şudur büyük/küçük harfe duyarlı ve küçük ve büyük harfleri farklı karakterler olarak ele alır.

    RemoveDupeChars fonksiyonu nasıl kullanılır

    RemoveDupeWords kullanımı hakkında söylediğimiz her şey aşağıdakiler için de geçerlidir RemoveDupeChars Bu yüzden, teoriye çok fazla girmeden doğrudan bir örneğe geçelim.

    A2'de başlayan A sütunundan yinelenen karakterleri silmek için, bu formülü B2'ye girin ve aşağı kopyalayın:

    =RemoveDupeChars(A2)

    Aşağıdaki resimde de görebileceğiniz gibi, fonksiyon harfler, rakamlar ve özel semboller dahil olmak üzere farklı karakter türlerini başarıyla işlemektedir:

    İpucu: Karakterleriniz birbirlerinden bir miktar ayrılmışsa sınırlayıcı boşluk, virgül veya kısa çizgi gibi, ardından RemoveDupeWords işlevini bir önceki örnekte gösterildiği gibi kullanın.

    Bir hücreden aynı karakterleri kaldırmak için VBA makrosu

    Gibi RemoveDupeWords , the RemoveDupeChars işlevi bir makro içinden de çağrılabilir:

    Public Sub RemoveDupeChars2() Dim cell As Range For Each cell In Application.Selection cell.Value = RemoveDupeChars(cell.Value) Next End Sub

    Bu UDF herhangi bir sınırlayıcı kullanmadığından, kodda herhangi bir ayarlama yapmanız gerekmeyecektir.

    Not: Makronun çalışması için, kodu ve RemoveDupeChars UDF kodu VBA düzenleyicisinde aynı modüle yerleştirilmelidir.

    Makro nasıl kullanılır

    Makronun kodunu çalışma kitabınıza zaten eklediğinizi veya kodu içeren örnek çalışma kitabımızı açtığınızı varsayarsak, makroyu bu şekilde başlatın.

    1. Tekrarlanan karakterleri kaldırmak istediğiniz bir hücre aralığı seçin.
    2. Açmak için Alt + F8 tuşlarına basın Makro iletişim kutusu.
    3. Makrolar listesinde şunları seçin RemoveDupeChars2 .
    4. Tıklayın Koşmak .

    Ultimate Suite ile yinelenen alt dizeleri kaldırın

    Bu eğitimin başında, Microsoft Excel'in bir hücre içindeki kopyaları kaldırmak için dahili bir özelliğe sahip olmadığından bahsedilmişti. Ancak Ultimate Suite'imiz bunu yapıyor!

    Bunu şurada bulabilirsiniz Duplicate Remover üzerindeki açılır menü Ablebits Verileri sekmesinde Dedupe grup. Eğer Yinelenen Alt Dizeleri Kaldır seçeneği Excel'inizde görünmüyorsa, Ultimate Suite'in en son sürümünün yüklü olduğundan emin olun (ücretsiz deneme sürümü buradan indirilebilir).

    Birden fazla hücreden tekrarlanan kelimeleri veya metni 5 saniyede (adım başına bir saniye :) kaldırmak için yapmanız gereken şey budur:

    1. Kaynak verilerinizi seçin ve Yinelenen Alt Dizeleri Kaldır Alet.
    2. Şunları belirtin sınırlayıcı .
    3. Tedavi edilip edilmeyeceğini tanımlayın ardışık sınırlayıcılar bir olarak (varsayılan).
    4. Gerçekleştirilip gerçekleştirilmeyeceğini seçin büyük/küçük harfe duyarlı veya büyük/küçük harf duyarsız Ara.
    5. Tıklayın Kaldırmak .

    Bitti! VBA veya formüllerle uğraşmak yok, sadece hızlı ve doğru sonuçlar.

    Bu harika eklenti hakkında daha fazla bilgi edinmek için lütfen ana sayfasını ziyaret edin. Ya da daha iyisi, aşağıdan bir değerlendirme sürümü indirin ve deneyin!

    Bir hücredeki yinelenen metin bu şekilde kaldırılır. Okuduğunuz için teşekkür ediyor ve gelecek hafta blogumuzda görüşmeyi umuyorum!

    Mevcut indirmeler

    Hücredeki yinelemeleri kaldırma örnekleri (.xlsm dosyası)

    Ultimate Suite 14 günlük tam işlevli sürüm (.exe dosyası)

    Michael Brown, yazılım araçlarını kullanarak karmaşık süreçleri basitleştirme tutkusuna sahip, kendini adamış bir teknoloji meraklısıdır. Teknoloji endüstrisinde on yılı aşkın deneyimiyle Microsoft Excel ve Outlook'un yanı sıra Google E-Tablolar ve Dokümanlar'daki becerilerini geliştirdi. Michael'ın blogu, bilgisini ve uzmanlığını başkalarıyla paylaşmaya, üretkenliği ve verimliliği artırmaya yönelik takip etmesi kolay ipuçları ve eğitimler sağlamaya adamıştır. İster deneyimli bir profesyonel, ister yeni başlayan olun, Michael'ın blogu, bu temel yazılım araçlarından en iyi şekilde yararlanmak için değerli bilgiler ve pratik tavsiyeler sunar.