Excelda maxsus / keraksiz belgilarni qanday o'chirish mumkin

  • Buni Baham Ko'Ring
Michael Brown

Ushbu maqolada siz matn qatoridan ma'lum belgilarni qanday o'chirish va bir vaqtning o'zida bir nechta katakchalardan keraksiz belgilarni olib tashlashni o'rganasiz.

Ma'lumotlarni Excelga boshqa joydan import qilishda, ko'plab maxsus belgilar sizning ish varaqlaringizga sayohat qilishi mumkin. Eng achinarlisi shundaki, ba'zi belgilar ko'rinmas bo'lib, matn satrlaridan oldin, keyin yoki ichida qo'shimcha bo'sh joy hosil qiladi. Ushbu qo'llanma ushbu muammolarning barchasini hal qiladi, bu sizni ma'lumotlar katakchalarini ko'rib chiqish va keraksiz belgilarni qo'lda tozalash muammosidan xalos qiladi.

    Excel yacheykasidan maxsus belgilarni olib tashlash

    Yacheykadan ma'lum bir belgini o'chirish uchun uni bo'sh satr bilan almashtiring>, "")

    Masalan, A2 dan savol belgisini yo'q qilish uchun B2 dagi formula:

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

    O'chirish uchun Agar klaviaturada mavjud boʻlmasa, uni asl katakdagi formulaga koʻchirishingiz/joylashtirishingiz mumkin.

    Masalan, teskari savol belgisidan qanday qutulish mumkin:

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

    Ammo keraksiz belgi ko'rinmas bo'lsa yoki to'g'ri ko'chirilmasa, uni formulaga qanday kiritish kerak? Shunchaki, CODE funksiyasidan foydalanib uning kod raqamini toping.

    Bizning holatlarimizda keraksiz belgi ("¿") A2 katakchasida oxirgi o'rinda turadi, shuning uchun biz kombinatsiyadan foydalanamiz.191:

    =CODE(RIGHT(A2))

    Belgi kodini olganingizdan so'ng, tegishli CHAR-ga xizmat ko'rsatish uchun uning noyob kod qiymatini olish uchun CODE va ​​RIGHT funktsiyalari Yuqoridagi umumiy formulaga funktsiya. Bizning ma'lumotlar to'plamimiz uchun formula quyidagicha bo'ladi:

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

    Eslatma. SUBSTITUTE funksiyasi katta-kichik harflarga sezgir , ya'ni u kichik va katta harflarni turli belgilar sifatida ko'radi. Iltimos, agar sizning kiruvchi belgingiz harf bo'lsa, buni yodda tuting.

    Stringdan bir nechta belgilarni o'chirish

    Oldingi maqolalardan birida biz Excelda bir nechta SUBSTITUTE funksiyalarini bir-biriga joylashtirish orqali qatorlardan ma'lum belgilarni qanday olib tashlashni ko'rib chiqdik. Xuddi shu yondashuv ikki yoki undan ortiq kiruvchi belgilarni bir vaqtning o‘zida yo‘q qilish uchun ishlatilishi mumkin:

    SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")

    Masalan, A2 formatidagi matn qatoridan oddiy undov va savol belgilarini, shuningdek teskari belgilarni yo'q qilish uchun quyidagi formuladan foydalaning:

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

    Xuddi shunday CHAR funksiyasi yordamida ham amalga oshirilishi mumkin, bunda 161 - "¡" belgisi va 191 - "¿" uchun belgilar kodi:

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

    Ich ichiga oʻrnatilgan SUBSTITUTE funksiyalari oʻrtacha miqdordagi belgilar uchun yaxshi ishlaydi, lekin oʻchirish uchun oʻnlab belgilar mavjud boʻlsa, formula juda uzun boʻladi va uni boshqarish qiyin boʻladi. Keyingi misol a ni ko'rsatadiyanada ixcham va oqlangan yechim.

    Barcha keraksiz belgilarni bir vaqtning o'zida o'chiring

    Yechim faqat Microsoft 365 uchun Excelda ishlaydi

    Ehtimol, siz bilganingizdek, Excel 365 o'z funksiyalaringizni, jumladan, rekursiv hisoblaydigan funksiyalarni yaratishga imkon beruvchi maxsus funksiyaga ega. Ushbu yangi funksiya LAMBDA deb nomlanadi va bu haqda toʻliq maʼlumotni yuqoridagi qoʻllanmada topishingiz mumkin. Quyida men kontseptsiyani bir nechta amaliy misollar bilan tasvirlab beraman.

    keraksiz belgilarni olib tashlash uchun maxsus LAMBDA funksiyasi quyidagicha:

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

    Ushbu funksiyani ish varaqlarida ishlatish uchun avval uni nomlashingiz kerak. Buning uchun Ism menejeri ni ochish uchun Ctrl + F3 tugmalarini bosing va keyin Yangi ism ni shu tarzda belgilang:

    1. Ism ichida maydoniga funksiya nomini kiriting: RemoveChars .
    2. Qoʻllanish doirasini Ish kitobi ga oʻrnating.
    3. Maqsadlarga katagiga yuqoridagi formulani joylashtiring.
    4. Ixtiyoriy ravishda Izohlar maydoniga parametrlar tavsifini kiriting. Yacheykaga formula kiritganingizda parametrlar koʻrsatiladi.
    5. Yangi funksiyangizni saqlash uchun OK tugmasini bosing.

    Batafsil koʻrsatmalar uchun qarang. Maxsus LAMBDA funksiyasini qanday nomlash mumkin.

    Funksiya nom olgandan so'ng, siz unga har qanday mahalliy formula kabi murojaat qilishingiz mumkin.

    Foydalanuvchi nuqtai nazaridan , bizning maxsus funksiyamiz sintaksisi oddiybu:

    RemoveChars(string, chars)

    Bu yerda:

    • String - asl qator yoki qatorni oʻz ichiga olgan katak/diapazonga havola ( s).
    • Chars - o'chirish uchun belgilar. Matn satri yoki katak havolasi bilan ifodalanishi mumkin.

    Qulaylik uchun biz ba'zi katakchalarga keraksiz belgilar kiritamiz, deylik D2. Ushbu belgilarni A2 dan olib tashlash uchun formula:

    =RemoveChars(A2, $D$2)

    Formul to'g'ri ishlashi uchun quyidagi narsalarga e'tibor bering:

    • D2 da , belgilar boʻsh joysiz roʻyxatga olinadi, agar siz boʻsh joyni ham oʻchirishni xohlamasangiz.
    • Maxsus belgilarni oʻz ichiga olgan katak manzili $ belgisi ($D$2) bilan bloklanadi, bunda havolani oʻzgartirishga yoʻl qoʻymaydi. formulani quyidagi katakchalarga o'tkazamiz.

    So'ngra formulani shunchaki pastga tortamiz va D2 da sanab o'tilgan barcha belgilar A2 dan A6 gacha bo'lgan kataklardan o'chiriladi:

    Bir nechta katakchalarni bitta formula bilan tozalash uchun 1-argument uchun A2:A6 diapazonini kiriting:

    =RemoveChars(A2:A6, D2)

    Formula faqat eng yuqori katakchaga kiritilganligi sababli, Hujayra koordinatalarini qulflash haqida tashvishlanishingiz shart emas - bu holatda nisbiy ma'lumotnoma (D2) yaxshi ishlaydi. Va dinamik massivlarni qo'llab-quvvatlaganligi sababli, formula avtomatik ravishda barcha havola qilingan kataklarga tushadi:

    Oldindan belgilangan belgilar to'plamini o'chirish

    Oldindan belgilangan to'plamni o'chirish uchun bir nechta hujayradan belgilar yaratishingiz mumkinasosiy RemoveChars funktsiyasini chaqiradigan boshqa LAMBDA va 2-parametrda kiruvchi belgilarni belgilang. Masalan:

    maxsus belgilarni oʻchirish uchun biz RemoveSpecialChars nomli maxsus funksiya yaratdik:

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

    To Matn satrlaridan raqamlarni olib tashlash , biz Raqamlarni olib tashlash nomli yana bir funksiya yaratdik:

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

    Yuqoridagi ikkala funksiya ham juda oson. foydalanish uchun faqat bitta argument - asl satr.

    A2 dan maxsus belgilarni yo'q qilish uchun formula:

    =RemoveSpecialChars(A2)

    Faqat raqamli belgilarni o'chirish uchun:

    =RemoveNumbers(A2)

    Ushbu funksiya qanday ishlaydi:

    Axir, RemoveChars funksiyasi belgilar roʻyxati boʻylab aylanadi va bir vaqtning oʻzida bitta belgini olib tashlaydi. Har bir rekursiv chaqiruvdan oldin IF funktsiyasi qolgan belgilarni tekshiradi. Agar chars satri bo'sh bo'lmasa (chars""), funktsiya o'zini chaqiradi. Oxirgi belgi qayta ishlanishi bilanoq, formula string uni hozirgi holatiga qaytaradi va undan chiqadi.

    Tafsilotli formulalar uchun keraksiz belgilarni olib tashlash uchun Rekursiv LAMBDA-ga qarang.

    VBA yordamida maxsus belgilarni olib tashlang

    Funktsiyalar Excelning barcha versiyalarida ishlaydi

    Agar LAMBDA funksiyasi Excelda mavjud bo'lmasa, hech narsa sizga xalaqit bermaydi VBA bilan o'xshash funktsiyani yaratishdan. Foydalanuvchi tomonidan belgilanganfunktsiyani (UDF) ikki usulda yozish mumkin.

    Maxsus belgilarni oʻchirish uchun maxsus funksiya rekursiv :

    Ushbu kod yuqorida koʻrib chiqilgan LAMBDA funksiyasi mantigʻini taqlid qiladi.

    Funktsiya 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 Funktsiya

    Maxsus belgilarni o'chirish uchun moslashtirilgan funksiya rekursiv bo'lmagan :

    Bu erda biz 1 dan keraksiz belgilarni aylantiramiz. Len(chars) va asl satrda topilganlarni hech narsa bilan almashtiring. MID funksiyasi keraksiz belgilarni birma-bir tortib oladi va ularni Replace funksiyasiga o‘tkazadi.

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

    Excelga VBA kodini qanday kiritish bo'limida tushuntirilganidek, yuqoridagi kodlardan birini ishchi kitobingizga kiriting va sizning shaxsiy funksiyangiz foydalanishga tayyor.

    Foydalanuvchi tomonidan aniqlangan yangi funksiyamizni Lambda-belgilangan funksiya bilan adashtirmaslik uchun biz uni boshqacha nomladik:

    RemoveUnwantedChars(string, chars)

    Asl satr A2 formatida va kiruvchi belgilar D2 da boʻlsa, biz ulardan quyidagi formula yordamida xalos bo'lishimiz mumkin:

    = RemoveUnwantedChars(A2, $D$2)

    Qattiq kodlangan maxsus funksiyabelgilar

    Agar siz har bir formula uchun maxsus belgilarni taqdim etish bilan bezovtalanmoqchi boʻlmasangiz, ularni toʻgʻridan-toʻgʻri kodda belgilashingiz mumkin:

    Funktsiya RemoveSpecialChars(str As String ) As String Dim belgilar sifatida String Dim indeksi As Uzun belgilar = "?¿!¡*%#$(){}[]^&/\~+-" Indeks uchun = 1 To Len(chars) str = Replace(str, Mid(belgilar, indeks, 1) , "" ) Keyingi RemoveSpecialChars = str End Function

    Yuqoridagi kod namoyish qilish uchun ekanligini unutmang. Amaliy foydalanish uchun quyidagi qatorga oʻchirmoqchi boʻlgan barcha belgilarni kiritganingizga ishonch hosil qiling:

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

    Ushbu maxsus funksiya RemoveSpecialChars deb nomlangan va u faqat bittasini talab qiladi. argument - asl qator:

    RemoveSpecialChars(string)

    Ma'lumotlar to'plamimizdan maxsus belgilarni olib tashlash uchun formula:

    =RemoveSpecialChars(A2)

    Excelda chop etilmaydigan belgilarni olib tashlash

    Microsoft Excel-da chop etilmaydigan belgilarni o'chirish uchun maxsus funksiya mavjud - CLEAN funksiyasi. Texnik jihatdan u 7-bitli ASCII to'plamidagi dastlabki 32 ta belgini o'chiradi (0 dan 31 gacha kodlar).

    Masalan, A2 dan chop bo'lmaydigan belgilarni o'chirish uchun quyidagi formuladan foydalaniladi. :

    =CLEAN(A2)

    Bu chop etilmaydigan belgilarni yo'q qiladi, lekin matndan oldin/keyin va so'zlar orasidagi bo'shliqlar qoladi.

    Kimga qo'shimcha bo'shliqlardan xalos bo'ling, TRIM funksiyasida CLEAN formulasini o'rang:

    =TRIM(CLEAN(A2))

    Endi, barcha yetakchi vaorqadagi bo'shliqlar olib tashlanadi, orasidagi bo'shliqlar esa bitta bo'shliq belgisiga qisqartiriladi:

    Agar siz ichidagi barcha bo'shliqlarni butunlay o'chirib tashlamoqchi bo'lsangiz satrni kiriting, so'ngra qo'shimcha ravishda bo'sh joy belgisini (kod raqami 32) bo'sh satr bilan almashtiring:

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

    Ba'zi bo'shliqlar yoki boshqa ko'rinmas belgilar hali ham qoladi. ish varaqingiz? Bu shuni anglatadiki, bu belgilar Unicode belgilar to‘plamida turli qiymatlarga ega.

    Masalan, uzilmaydigan bo‘sh joy ( ) ning belgilar kodi 160 ga teng va uni quyidagi formula yordamida tozalashingiz mumkin:

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

    Muayyan chop etilmaydigan belgini o'chirish uchun avval uning kod qiymatini topishingiz kerak. Batafsil ko'rsatmalar va formulalar misollari bu yerda: Muayyan chop etilmaydigan belgini qanday olib tashlash mumkin.

    Ultimate Suite yordamida maxsus belgilarni o'chirish

    Microsoft 365, Excel 2019 - 2010 uchun Excelni qo'llab-quvvatlaydi

    Oxirgi misolda sizga Excelda maxsus belgilarni olib tashlashning eng oson usulini ko'rsataman. Ultimate Suite o'rnatilgan bo'lsa, buni qilishingiz kerak:

    1. Ablebits Data yorlig'ida, Matn guruhida tugmasini bosing. O'chirish > Belgilarni o'chirish .

  • Kengaytma panelida manba diapazonini tanlang, O'chirish-ni tanlang belgilar to'plami va ochiladigan ro'yxatdan kerakli variantni tanlang ( Bunday belgilar va tinish belgilari misol).
  • O'chirish tugmasini bosing.
  • Bir zumda siz mukammal natijaga erishasiz:

    Agar biror narsa noto'g'ri bo'lsa, tashvishlanmang - ish varag'ingizning zaxira nusxasi avtomatik ravishda yaratiladi, chunki sukut bo'yicha Ushbu ish varag'ini zaxiralash oynasi tanlangan.

    O'chirish vositasini sinab ko'rmoqchimisiz? Baholash versiyasiga havola quyida joylashgan. O'qiganingiz uchun rahmat va keyingi haftada blogimizda ko'rishga umid qilaman!

    Mavjud yuklab olishlar

    Maxsus belgilarni o'chirish - misollar (.xlsm fayli)

    Ultimate Suite - sinov versiyasi versiyasi (.exe fayli)

    Maykl Braun - dasturiy vositalardan foydalangan holda murakkab jarayonlarni soddalashtirishga ishtiyoqi bo'lgan maxsus texnologiya ishqibozi. Texnologiya sohasida o'n yildan ortiq tajribaga ega bo'lgan holda, u Microsoft Excel va Outlook, shuningdek, Google Sheets va Docs dasturlarida o'z mahoratini oshirdi. Mayklning blogi o'z bilimi va tajribasini boshqalar bilan baham ko'rishga, samaradorlik va samaradorlikni oshirish uchun amal qilish oson maslahatlar va o'quv qo'llanmalariga bag'ishlangan. Tajribali mutaxassismisiz yoki yangi boshlovchi boʻlasizmi, Mayklning blogi ushbu muhim dasturiy vositalardan maksimal darajada foydalanish uchun qimmatli tushunchalar va amaliy maslahatlarni taqdim etadi.