Excel'de özel / istenmeyen karakterler nasıl silinir

  • Bunu Paylaş
Michael Brown

Bu makalede, bir metin dizesinden belirli karakterleri nasıl sileceğinizi ve aynı anda birden fazla hücreden istenmeyen karakterleri nasıl kaldıracağınızı öğreneceksiniz.

Excel'e başka bir yerden veri aktarırken, çalışma sayfalarınıza çok sayıda özel karakter gelebilir. Daha da sinir bozucu olan, bazı karakterlerin görünmez olmasıdır; bu da metin dizelerinden önce, sonra veya içinde fazladan beyaz alan oluşturur. Bu eğitim, tüm bu sorunlar için çözümler sunarak sizi verileri hücre hücre gözden geçirme ve istenmeyenleri temizleme zahmetinden kurtarırel ile karakterler.

    Excel hücresinden özel karakteri kaldırma

    Bir hücreden belirli bir karakteri silmek için, en basit haliyle SUBSTITUTE işlevini kullanarak karakteri boş bir dizeyle değiştirin:

    SUBSTITUTE( hücre , char , "")

    Örneğin, A2'den bir soru işaretini silmek için B2'deki formül şöyledir:

    =SUBSTITUTE(A2, "?", "")

    Klavyenizde bulunmayan bir karakteri kaldırmak için, orijinal hücreden formüle kopyalayıp yapıştırabilirsiniz.

    Örneğin, ters çevrilmiş bir soru işaretinden nasıl kurtulabileceğinizi aşağıda bulabilirsiniz:

    =SUBSTITUTE(A2, "¿", "")

    Ancak istenmeyen bir karakter görünmez veya doğru kopyalamıyorsa, formüle nasıl koyarsınız? Basitçe, KOD işlevini kullanarak kod numarasını bulun.

    Bizim durumumuzda, istenmeyen karakter ("¿") A2 hücresinde en son gelir, bu nedenle 191 olan benzersiz kod değerini almak için CODE ve RIGHT işlevlerinin bir kombinasyonunu kullanıyoruz:

    =CODE(RIGHT(A2))

    Karakterin kodunu aldıktan sonra, yukarıdaki genel formüle karşılık gelen CHAR işlevini kullanın. Veri kümemiz için formül aşağıdaki gibidir:

    =SUBSTITUTE(A2, CHAR(191),"")

    Not: SUBSTITUTE işlevi büyük/küçük harfe duyarlı Yani küçük ve büyük harfleri farklı karakterler olarak ele alır. İstenmeyen karakteriniz bir harf ise lütfen bunu aklınızda bulundurun.

    Dizeden birden çok karakteri silme

    Önceki makalelerden birinde, birkaç SUBSTITUTE işlevini iç içe yerleştirerek Excel'deki dizelerden belirli karakterlerin nasıl kaldırılacağını incelemiştik. Aynı yaklaşım, iki veya daha fazla istenmeyen karakteri tek seferde ortadan kaldırmak için de kullanılabilir:

    IKAME(IKAME(IKAME( hücre , char1 , ""), char2 , ""), char3 , "")

    Örneğin, A2'deki bir metin dizesinden normal ünlem ve soru işaretlerinin yanı sıra ters çevrilmiş olanları da silmek için şu formülü kullanın:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")

    Aynı şey CHAR fonksiyonu yardımıyla da yapılabilir; burada 161 "¡" ve 191 "¿" için karakter kodudur:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")

    İç içe SUBSTITUTE işlevleri makul sayıda karakter için iyi çalışır, ancak kaldırılacak düzinelerce karakteriniz varsa, formül çok uzun ve yönetilmesi zor hale gelir. Bir sonraki örnekte daha kompakt ve zarif bir çözüm gösterilmektedir.

    İstenmeyen tüm karakterleri tek seferde kaldırın

    Çözüm yalnızca Microsoft 365 için Excel'de çalışır

    Muhtemelen bildiğiniz gibi Excel 365, özyinelemeli olarak hesaplayanlar da dahil olmak üzere kendi fonksiyonlarınızı oluşturmanıza olanak tanıyan özel bir fonksiyona sahiptir. Bu yeni fonksiyonun adı LAMBDA'dır ve bununla ilgili tüm ayrıntıları yukarıda bağlantısı verilen eğitimde bulabilirsiniz. Aşağıda, konsepti birkaç pratik örnekle açıklayacağım.

    Özel bir LAMBDA işlevi istenmeyen karakterleri kaldırın aşağıdaki gibidir:

    =LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string)

    Bu işlevi çalışma sayfalarınızda kullanabilmek için önce onu adlandırmanız gerekir. Bunun için Ctrl + F3 tuşlarına basarak İsim Yöneticisi 'yi tanımlayın ve ardından a Yeni İsim bu şekilde:

    1. İçinde İsim kutusuna işlevin adını girin: RemoveChars .
    2. Kapsamı şu şekilde ayarlayın Çalışma Kitabı .
    3. İçinde Şunları ifade eder kutusuna yukarıdaki formülü yapıştırın.
    4. İsteğe bağlı olarak, parametrelerin açıklamasını Yorumlar kutusunu seçin. Bir hücreye formül yazdığınızda parametreler görüntülenecektir.
    5. Tıklayın TAMAM. yeni fonksiyonunuzu kaydetmek için.

    Ayrıntılı talimatlar için lütfen Özel bir LAMBDA işlevi nasıl adlandırılır bölümüne bakın.

    İşlev bir ad aldıktan sonra, herhangi bir yerel formül gibi ona başvurabilirsiniz.

    Kullanıcı açısından bakıldığında, özel fonksiyonumuzun söz dizimi bu kadar basittir:

    RemoveChars(string, chars)

    Nerede?

    • Dize - orijinal dize veya dizeleri içeren hücreye/aralığa bir referanstır.
    • Karakterler - Silinecek karakterler. Bir metin dizesi veya bir hücre başvurusu ile temsil edilebilir.

    Kolaylık sağlamak için, bazı hücrelere istenmeyen karakterler giriyoruz, örneğin D2. Bu karakterleri A2'den kaldırmak için formül şöyledir:

    =RemoveChars(A2, $D$2)

    Formülün doğru çalışması için lütfen aşağıdaki hususlara dikkat edin:

    • D2'de, boşlukları da ortadan kaldırmak istemediğiniz sürece karakterler boşluksuz olarak listelenir.
    • Özel karakterleri içeren hücrenin adresi, formül aşağıdaki hücrelere kopyalanırken başvurunun değişmesini önlemek için $ işaretiyle ($D$2) kilitlenir.

    Ardından, formülü aşağı sürükleriz ve D2'de listelenen tüm karakterlerin A2'den A6'ya kadar olan hücrelerden silinmesini sağlarız:

    Tek bir formülle birden çok hücreyi temizlemek için, 1. bağımsız değişken için A2:A6 aralığını sağlayın:

    =RemoveChars(A2:A6, D2)

    Formül yalnızca en üstteki hücreye girildiğinden, hücre koordinatlarını kilitleme konusunda endişelenmenize gerek yoktur - göreli bir referans (D2) bu durumda iyi çalışır. Ve dinamik diziler için destek nedeniyle, formül otomatik olarak başvurulan tüm hücrelere yayılır:

    Önceden tanımlanmış bir karakter kümesini kaldırma

    Birden fazla hücreden önceden tanımlanmış bir karakter kümesini silmek için, ana LAMBDA'yı çağıran başka bir LAMBDA oluşturabilirsiniz RemoveChars fonksiyonunu seçin ve 2. parametrede istenmeyen karakterleri belirtin. Örneğin:

    Silmek için özel karakterler adlı özel bir fonksiyon oluşturduk. RemoveSpecialChars :

    =LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))

    için numaraları kaldırın adlı bir fonksiyon daha oluşturduk. RemoveNumbers :

    =LAMBDA(string, RemoveChars(string, "0123456789"))

    Yukarıdaki fonksiyonların her ikisinin de kullanımı son derece kolaydır çünkü sadece tek bir argüman gerektirirler - orijinal dize.

    Ortadan kaldırmak için özel karakterler A2'den formül şu şekildedir:

    =RemoveSpecialChars(A2)

    Yalnızca silmek için sayısal karakterler:

    =RemoveNumbers(A2)

    Bu fonksiyon nasıl çalışır?

    İşin özü şu ki RemoveChars işlevi şu listede döngüler gerçekleştirir karakterler ve her seferinde bir karakter kaldırır. Her özyinelemeli çağrıdan önce, IF işlevi kalan karakterleri kontrol eder. karakterler dizesi boş değilse (chars""), işlev kendini çağırır. Son karakter işlenir işlenmez, formül geri döner Dize bugünkü halini alır ve çıkar.

    Ayrıntılı formül dökümü için lütfen İstenmeyen karakterleri kaldırmak için yinelemeli LAMBDA bölümüne bakın.

    VBA ile özel karakterleri kaldırma

    İşlevler Excel'in tüm sürümlerinde çalışır

    LAMBDA işlevi Excel'inizde mevcut değilse, VBA ile benzer bir işlev oluşturmanızı engelleyen hiçbir şey yoktur. Kullanıcı tanımlı bir işlev (UDF) iki şekilde yazılabilir.

    Özel karakterleri silmek için özel işlev özyinelemeli :

    Bu kod, yukarıda tartışılan LAMBDA işlevinin mantığını taklit eder.

    Function RemoveUnwantedChars(str As String , chars As String ) If ( "" chars) Then str = Replace(str, Left(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End Function

    Özel karakterleri kaldırmak için özel işlev özyinelemesiz :

    Burada, 1'den Len(chars)'a kadar istenmeyen karakterler arasında geçiş yaparız ve orijinal dizede bulunanları hiçbir şeyle değiştirmeyiz. MID işlevi istenmeyen karakterleri tek tek çeker ve bunları Replace işlevine geçirir.

    Function RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveUnwantedChars = str End Function

    Excel'de VBA kodu nasıl eklenir bölümünde açıklandığı gibi yukarıdaki kodlardan birini çalışma kitabınıza ekleyin ve özel işleviniz kullanıma hazırdır.

    Yeni kullanıcı tanımlı fonksiyonumuzu Lambda tanımlı olanla karıştırmamak için farklı bir şekilde adlandırdık:

    RemoveUnwantedChars(string, chars)

    Orijinal dizenin A2'de ve istenmeyen karakterlerin D2'de olduğunu varsayarsak, bu formülü kullanarak onlardan kurtulabiliriz:

    = RemoveUnwantedChars(A2, $D$2)

    Sabit kodlanmış karakterler içeren özel işlev

    Her formül için özel karakterler sağlamakla uğraşmak istemiyorsanız, bunları doğrudan kod içinde belirtebilirsiniz:

    Function RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Long chars = "?¿!¡*%#$(){}[]^&/\~+-" For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveSpecialChars = str End Function

    Lütfen yukarıdaki kodun gösterim amaçlı olduğunu unutmayın. Pratik kullanım için, silmek istediğiniz tüm karakterleri aşağıdaki satıra eklediğinizden emin olun:

    chars = "?¿!¡*%#$(){}[]^&/\~+-"

    Bu özel fonksiyonun adı RemoveSpecialChars ve sadece bir argüman gerektirir - orijinal dize:

    RemoveSpecialChars(string)

    Veri kümemizden özel karakterleri çıkarmak için formül şu şekildedir:

    =RemoveSpecialChars(A2)

    Excel'de yazdırılamayan karakterleri kaldırma

    Microsoft Excel'in yazdırılmayan karakterleri silmek için özel bir işlevi vardır: TEMİZLE işlevi. Teknik olarak, 7 bit ASCII kümesindeki ilk 32 karakteri siler (0 ile 31 arasındaki kodlar).

    Örneğin, silmek için yazdırılamayan karakterler A2'den, işte kullanılacak formül:

    =CLEAN(A2)

    Bu, yazdırılmayan karakterleri ortadan kaldıracaktır, ancak metinden önce/sonra ve kelimeler arasındaki boşluklar kalacaktır.

    Kurtulmak için ekstra alanlar CLEAN formülünü TRIM işlevine sarın:

    =TRIM(CLEAN(A2))

    Artık baştaki ve sondaki tüm boşluklar kaldırılırken, aradaki boşluklar tek bir boşluk karakterine indirgenmiştir:

    Eğer kesinlikle silmek isterseniz tüm alanlar bir dize içinde, ardından ek olarak boşluk karakterini (kod numarası 32) boş bir dize ile değiştirin:

    =TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))

    Çalışma sayfanızda bazı boşluklar veya diğer görünmez karakterler hala duruyor mu? Bu, bu karakterlerin Unicode karakter kümesinde farklı değerlere sahip olduğu anlamına gelir.

    Örneğin, bir karakter kodunun kırılmayan boşluk ( ) 160'tır ve bu formülü kullanarak temizleyebilirsiniz:

    =SUBSTITUTE(A2, CHAR(160)," ")

    Bir dosyayı silmek için belirli yazdırılmayan karakter Ayrıntılı talimatlar ve formül örnekleri burada: Belirli bir yazdırılmayan karakter nasıl kaldırılır.

    Ultimate Suite ile özel karakterleri silme

    Microsoft 365 için Excel, Excel 2019 - 2010'u destekler

    Bu son örnekte, size Excel'de özel karakterleri kaldırmanın en kolay yolunu göstereyim. Ultimate Suite yüklüyken yapmanız gereken şey şu:

    1. Üzerinde Ablebits Verileri sekmesinde Metin grubunu seçin, tıklayın Kaldırmak > Karakterleri Kaldır .

  • Eklentinin bölmesinde, kaynak aralığını seçin ve Karakter setlerini kaldırma ve açılır listeden istediğiniz seçeneği seçin ( Semboller & noktalama işaretleri bu örnekte).
  • Vur Kaldırmak Düğme.
  • Bir dakika içinde mükemmel bir sonuç alacaksınız:

    Bir şeyler ters giderse endişelenmeyin - çalışma sayfanızın yedek bir kopyası otomatik olarak Bu çalışma sayfasını yedekleyin kutusu varsayılan olarak seçilidir.

    Kaldırma aracımızı denemek ister misiniz? Değerlendirme sürümünün linki hemen aşağıda. Okuduğunuz için teşekkür eder, gelecek hafta blogumuzda görüşmek dileğiyle!

    Mevcut indirmeler

    Özel karakterleri silme - örnekler (.xlsm dosyası)

    Ultimate Suite - deneme 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.