Mündəricat
Bu məqalədə siz mətn sətirindən xüsusi simvolları silməyi və birdən çox xanadan arzuolunmaz simvolları silməyi öyrənəcəksiniz.
Məlumatları Excel-ə başqa yerdən idxal edərkən, bir çox xüsusi simvol iş vərəqlərinizə səyahət edə bilər. Daha da sinir bozucu olan odur ki, bəzi simvollar görünməzdir və bu, mətn sətirlərindən əvvəl, sonra və ya daxilində əlavə boşluq yaradır. Bu dərslik bütün bu problemlərin həlli yollarını təqdim edir, məlumatı xana-xana keçmək və arzuolunmaz simvolları əl ilə təmizləmək problemindən xilas edir.
Excel xanasından xüsusi simvolu silin.
Xüceyrədən xüsusi simvolu silmək üçün onu ən sadə formada Əvəz etmə funksiyasından istifadə edərək boş sətirlə əvəz edin:
SUBSTITUTE( cell, char, "")Məsələn, A2-dən sual işarəsini silmək üçün B2-dəki düstur belədir:
=SUBSTITUTE(A2, "?", "")
klaviaturanızda olmayan simvol üçün onu orijinal xanadakı düstura köçürə/yapışdıra bilərsiniz.
Məsələn, tərsinə çevrilmiş sual işarəsindən bu yolla xilas ola bilərsiniz:
=SUBSTITUTE(A2, "¿", "")
Lakin arzuolunmaz simvol görünməzdir və ya düzgün surətdə kopyalanmırsa, onu düstura necə daxil etmək olar? Sadəcə, CODE funksiyasından istifadə etməklə onun kod nömrəsini tapın.
Bizim halda, A2 xanasında arzuolunmaz simvol ("¿") sonuncu yerdə gəlir, ona görə də biz kombinasiyadan istifadə edirik.191:
=CODE(RIGHT(A2))
Kodun unikal kod dəyərini əldə etmək üçün KOD və RIGHT funksiyalarını yerinə yetirin. yuxarıdakı ümumi düstura funksiyasını yerinə yetirin. Verilənlər dəstimiz üçün düstur aşağıdakı kimidir:
=SUBSTITUTE(A2, CHAR(191),"")
Qeyd. Əvəz etmə funksiyası hərflərə həssasdır , yəni kiçik və böyük hərfləri fərqli simvol kimi qəbul edir. Əgər arzuolunmaz xarakteriniz hərfdirsə, bunu nəzərə alın.
Sətrdən çoxlu simvolları silin
Əvvəlki məqalələrdən birində biz Excel-də bir neçə ƏVVƏZİNƏ funksiyasını bir-birinə yerləşdirməklə sətirlərdən xüsusi simvolları necə silməyi nəzərdən keçirdik. Eyni yanaşma iki və ya daha çox arzuolunmaz simvolu bir anda aradan qaldırmaq üçün istifadə edilə bilər:
ƏVƏZİNƏ(ƏVƏZİNƏ( hüceyrə , char1 , ""), char2 , ""), char3 , "")Məsələn, A2 mətn sətirindən normal nida və sual işarələrini, eləcə də tərsinə çevrilmiş işarələri silmək üçün bu düsturdan istifadə edin:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
Eyni şeyi CHAR funksiyasının köməyi ilə etmək olar, burada 161 "¡" üçün simvol kodu və 191 "¿" üçün simvol kodudur:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Nested ƏVƏZİNƏ funksiyaları məqbul sayda simvol üçün yaxşı işləyir, lakin silmək üçün onlarla simvolunuz varsa, formula çox uzun olur və idarə etmək çətinləşir. Növbəti nümunə göstərir ki, adaha yığcam və zərif həll.
Bütün arzuolunmaz simvolları bir anda silin
Hol yalnız Microsoft 365 üçün Excel-də işləyir
Yəqin bildiyiniz kimi, Excel 365 rekursiv hesablayanlar da daxil olmaqla, öz funksiyalarınızı yaratmağa imkan verən xüsusi funksiyaya malikdir. Bu yeni funksiya LAMBDA adlanır və siz bu barədə tam təfərrüatları yuxarıdakı təlimatda tapa bilərsiniz. Aşağıda mən konsepsiyanı bir neçə praktik nümunə ilə təsvir edəcəyəm.
İstifadəçi LAMBDA funksiyası arzuolunmaz simvolları silmək aşağıdakı kimidir:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
Bu funksiyanı iş vərəqlərinizdə istifadə etmək üçün əvvəlcə onu adlandırmalısınız. Bunun üçün Ad Meneceri açmaq üçün Ctrl + F3 düymələrini basın və sonra bu şəkildə Yeni Ad təyin edin:
- Ad xanasına funksiyanın adını daxil edin: RemoveChars .
- Əhatə dairəsini İş dəftəri olaraq təyin edin.
- İstifadə edir xanasına yuxarıdakı düsturu yapışdırın.
- İstəyə görə, parametrlərin təsvirini Şərhlər xanasına daxil edin. Xanaya düstur yazdığınız zaman parametrlər göstəriləcək.
- Yeni funksiyanızı saxlamaq üçün OK üzərinə klikləyin.
Ətraflı təlimatlar üçün baxın. Fərdi LAMBDA funksiyasını necə adlandırmaq olar.
Funksiya ad aldıqdan sonra ona istənilən yerli düstur kimi müraciət edə bilərsiniz.
İstifadəçi baxımından , bizim xüsusi funksiyamızın sintaksisi qədər sadədirbu:
RemoveChars(string, chars)Burada:
- String - orijinal sətir və ya sətirdən ibarət xana/aralığa istinaddır( s).
- Chars - silinəcək simvollar. Mətn sətri və ya xana istinadı ilə təmsil oluna bilər.
Rahatlıq üçün bəzi xanalara arzuolunmaz simvollar daxil edirik, məsələn, D2. Həmin simvolları A2-dən silmək üçün düstur belədir:
=RemoveChars(A2, $D$2)
Düsturun düzgün işləməsi üçün aşağıdakılara diqqət yetirin:
- D2-də , siz boşluqları da silmək istəmədiyiniz halda simvollar boşluqsuz siyahıya salınır.
- Xüsusi simvolları ehtiva edən xananın ünvanı öhdəsindən gələrkən istinadın dəyişməsinin qarşısını almaq üçün $ işarəsi ($D$2) ilə kilidlənir. düsturunu aşağıdakı xanalara köçürün.
Və sonra biz sadəcə olaraq düsturu aşağı sürükləyirik və D2-də sadalanan bütün simvolları A2-dən A6-ya qədər olan xanalardan silirik:
Birdən çox xananı tək düsturla təmizləmək üçün 1-ci arqument üçün A2:A6 diapazonunu təmin edin:
=RemoveChars(A2:A6, D2)
Düstur yalnız ən yuxarıdakı xanaya daxil edildiyi üçün, Hüceyrə koordinatlarını kilidləməkdən narahat olmaq lazım deyil - nisbi istinad (D2) bu halda yaxşı işləyir. Dinamik massivləri dəstəklədiyinə görə, formula avtomatik olaraq bütün istinad edilən xanalara yayılır:
Öncədən təyin edilmiş simvol dəstinin silinməsi
Öncədən təyin edilmiş bir sıra silmək üçün birdən çox hüceyrədən simvol yarada bilərsinizəsas RemoveChars funksiyasını çağıran və 2-ci parametrdə arzuolunmaz simvolları təyin edən başqa bir LAMBDA. Məsələn:
xüsusi simvolları silmək üçün biz RemoveSpecialChars adlı fərdi funksiya yaratdıq:
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
To Mətn sətirlərindən rəqəmləri sil , biz Nömrələri Sil adlı daha bir funksiya yaratdıq:
=LAMBDA(string, RemoveChars(string, "0123456789"))
Yuxarıdakı funksiyaların hər ikisi çox asandır yalnız bir arqument tələb etdiyi üçün istifadə etmək - orijinal sətir.
A2-dən xüsusi simvolları silmək üçün formula belədir:
=RemoveSpecialChars(A2)
Yalnız rəqəm simvollarını silmək üçün:
=RemoveNumbers(A2)
Bu funksiya necə işləyir:
Əslində, RemoveChars funksiyası simvollar siyahısında dövrə vurur və hər dəfə bir simvolu silir. Hər rekursiv çağırışdan əvvəl IF funksiyası qalan simvolları yoxlayır. chars sətri boş deyilsə (simvol""), funksiya özünü çağırır. Sonuncu simvol işləndikdən sonra düstur sətir onu indiki formasını qaytarır və çıxış edir.
Ətraflı düstur bölgüsü üçün arzuolunmaz simvolları silmək üçün Rekursiv LAMBDA-ya baxın.
VBA ilə xüsusi simvolları silin
Funksiyalar Excel-in bütün versiyalarında işləyir
Əgər LAMBDA funksiyası Excel-də mövcud deyilsə, sizə heç nə mane olmur VBA ilə oxşar funksiya yaratmaqdan. İstifadəçi tərəfindən müəyyən edilmişfunksiyası (UDF) iki şəkildə yazıla bilər.
Xüsusi simvolları silmək üçün fərdi funksiya rekursiv :
Bu kod yuxarıda müzakirə olunan LAMBDA funksiyasının məntiqini təqlid edir.
Funksiya 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 FunksiyasıXüsusi simvolları silmək üçün fərdi funksiya rekursiv olmayan :
Burada biz 1-dən başlayaraq arzuolunmaz simvollar arasında dövr edirik Len(simvollar) və orijinal sətirdə olanları heç nə ilə əvəz edin. MID funksiyası arzuolunmaz simvolları bir-bir çəkir və onları Replace funksiyasına ötürür.
Funksiya RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars,) index, 1), "" ) Next RemoveUnwantedChars = str End FunctionExcel-də VBA kodunu necə daxil etmək olar bölməsində izah edildiyi kimi yuxarıdakı kodlardan birini iş kitabınıza daxil edin və fərdi funksiyanız istifadəyə hazırdır.
İstifadəçi tərəfindən təyin olunan yeni funksiyamızı Lambda ilə müəyyən edilmiş funksiya ilə qarışdırmamaq üçün biz onu fərqli adlandırdıq:
RemoveUnwantedChars(string, chars)Orijinal sətirin A2-də və arzuolunmaz simvolların D2-də olduğunu fərz etsək, biz bu düsturdan istifadə edərək onlardan xilas ola bilərik:
= RemoveUnwantedChars(A2, $D$2)
Sərt kodlu xüsusi funksiyasimvollar
Əgər siz hər bir düstur üçün xüsusi simvollar təqdim etməklə narahat olmaq istəmirsinizsə, onları birbaşa kodda göstərə bilərsiniz:
Funksiya RemoveSpecialChars(str As String ) As String Dim simvolları As String Dim index As Uzun simvollar = "?¿!¡*%#$(){}[]^&/\~+-" İndeks üçün = 1 To Len(simvol) str = Dəyişdirin(str, Mid(simvollar, indeks, 1) , "" ) Next RemoveSpecialChars = str End FunctionYuxarıdakı kodun nümayiş məqsədi ilə olduğunu unutmayın. Praktik istifadə üçün, silmək istədiyiniz bütün simvolları aşağıdakı sətirə daxil etməyinizə əmin olun:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Bu fərdi funksiya RemoveSpecialChars adlanır və o, yalnız bir simvol tələb edir. arqument - orijinal sətir:
RemoveSpecialChars(string)Verilənlər dəstimizdən xüsusi simvolları silmək üçün formula belədir:
=RemoveSpecialChars(A2)
Excel-də çap olunmayan simvolları silin
Microsoft Excel-in çap olunmayan simvolları silmək üçün xüsusi funksiyası var - TƏMİZLƏM funksiyası. Texniki cəhətdən o, 7 bitlik ASCII dəstindəki ilk 32 simvolu silir (0-dan 31-ə qədər kodlar).
Məsələn, A2-dən çap olunmayan simvolları silmək üçün istifadə ediləcək düstur buradadır. :
=CLEAN(A2)
Bu, çap olunmayan simvolları aradan qaldıracaq, lakin mətndən əvvəl/sonra və sözlər arasında boşluq qalacaq.
To əlavə boşluqlardan xilas olun, TƏMİZƏ düsturunu TRIM funksiyasına sarın:
=TRIM(CLEAN(A2))
İndi bütün aparıcı vəarxadakı boşluqlar silinir, aralarındakı boşluqlar isə tək boşluq simvoluna endirilir:
Əgər siz daxilindəki bütün boşluqları tamamilə silmək istəyirsinizsə sətir, sonra əlavə olaraq boşluq simvolunu (kod nömrəsi 32) boş sətirlə əvəz edin:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Bəzi boşluqlar və ya digər görünməz simvollar hələ də iş vərəqiniz? Bu o deməkdir ki, bu simvollar Unicode simvol dəstində fərqli dəyərlərə malikdir.
Məsələn, qırılmayan boşluğun ( ) simvol kodu 160-dır və siz bu düsturdan istifadə edərək onu təmizləyə bilərsiniz:
=SUBSTITUTE(A2, CHAR(160)," ")
xüsusi çap olunmayan simvolu silmək üçün əvvəlcə onun kod dəyərini tapmalısınız. Ətraflı təlimatlar və düstur nümunələri buradadır: Çap olunmayan xüsusi simvolu necə silmək olar.
Ultimate Suite ilə xüsusi simvolları silin
Microsoft 365, Excel 2019 - 2010 üçün Excel-i dəstəkləyir
Bu son nümunədə sizə Excel-də xüsusi simvolları silməyin ən asan yolunu göstərməyə icazə verin. Ultimate Suite quraşdırıldıqda, bunu etməlisiniz:
- Ablebits Data nişanında, Mətn qrupunda, üzərinə klikləyin. Sil > Simvolları Sil .
Bir anda mükəmməl nəticə əldə edəcəksiniz:
Bir şey səhv olarsa, narahat olmayın - defolt olaraq Bu iş vərəqini yedəkləyin qutusu seçildiyi üçün iş vərəqinizin ehtiyat nüsxəsi avtomatik yaradılacaq.
Sil alətimizi sınamaq istəyirsiniz? Qiymətləndirmə versiyasına keçid aşağıdadır. Oxuduğunuz üçün sizə təşəkkür edirəm və sizi gələn həftə bloqumuzda görməyə ümid edirəm!
Mövcud endirmələr
Xüsusi simvolları silin - nümunələr (.xlsm faylı)
Ultimate Suite - sınaq versiya (.exe faylı)