Како да избришете специјални / несакани знаци во Excel

  • Споделете Го Ова
Michael Brown

Во оваа статија, ќе научите како да бришете одредени знаци од текстуална низа и да ги отстраните несаканите знаци од повеќе ќелии одеднаш.

Кога увезувате податоци во Excel од друго место, многу специјални знаци може да патуваат до вашите работни листови. Она што е уште пофрустрирачко е што некои знаци се невидливи, што создава дополнителен бел простор пред, после или внатре во текстуалните низи. Овој туторијал нуди решенија за сите овие проблеми, поштедувајќи ве од маката да мора да поминете низ податоците ќелија по ќелија и рачно да ги исчистите несаканите знаци.

    Отстранете специјални знаци од ќелијата на Excel

    За да избришете специфичен знак од ќелија, заменете го со празна низа со користење на функцијата SUBSTITUTE во нејзината наједноставна форма:

    SUBSTITUTE( ќелија, char, "")

    На пример, за да се искорени прашалник од А2, формулата во Б2 е:

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

    За отстранување на знак што не е присутен на вашата тастатура, можете да го копирате/залепите во формулата од оригиналната ќелија.

    На пример, еве како можете да се ослободите од превртен прашалник:

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

    Но, ако несаканиот знак е невидлив или не се копира правилно, како да го ставите во формулата? Едноставно, пронајдете го неговиот коден број со користење на функцијата CODE.

    Во нашиот случај, несаканиот знак („¿“) е последен во ќелијата A2, така што користиме комбинацијаод функциите CODE и RIGHT за да се добие неговата единствена вредност на кодот, која е 191:

    =CODE(RIGHT(A2))

    Откако ќе го добиете кодот на ликот, послужете го соодветниот CHAR функционираат на генеричката формула погоре. За нашата база на податоци, формулата оди како што следува:

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

    Забелешка. Функцијата SUBSTITUTE е чувствителна на букви , што значи дека ги третира малите и големите букви како различни знаци. Ве молиме имајте го тоа на ум ако вашиот несакан лик е буква.

    Избришете повеќе знаци од низата

    Во една од претходните написи, разгледавме како да отстраните одредени знаци од низите во Excel со вгнездување на неколку SUBSTITUTE функции една во друга. Истиот пристап може да се користи за елиминирање на два или повеќе несакани знаци во едно движење:

    SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( ќелија , char1 , ""), char2 , ""), char3 , "")

    На пример, за да се искорени нормалните извичници и прашалници, како и превртените од текстуалната низа во А2, користете ја оваа формула:

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

    Истото може да се направи со помош на функцијата CHAR, каде што 161 е шифрата на знакот за „¡“ и 191 е шифрата на знакот за „¿“:

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

    Вгнездените SUBSTITUTE функции функционираат добро за разумен број знаци, но ако имате десетици знаци за отстранување, формулата станува премногу долга и тешка за управување. Следниот пример покажува апокомпактно и поелегантно решение.

    Отстранете ги сите несакани знаци одеднаш

    Решението работи само во Excel за Microsoft 365

    Како што веројатно знаете, Excel 365 има специјална функција која ви овозможува да креирате сопствени функции, вклучувајќи ги и оние што пресметуваат рекурзивно. Оваа нова функција е наречена LAMBDA, а целосните детали за неа можете да ги најдете во горенаведениот туторијал. Подолу, ќе го илустрирам концептот со неколку практични примери.

    Прилагодена функција LAMBDA за отстранување на несакани знаци е како што следува:

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

    За да можете да ја користите оваа функција во вашите работни листови, прво треба да ја именувате. За ова, притиснете Ctrl + F3 за да го отворите Управникот со имиња , а потоа дефинирајте Ново име на овој начин:

    1. Во Име полето , внесете го името на функцијата: RemoveChars .
    2. Поставете го опсегот на Работна книга .
    3. Во Се однесува на полето, залепете ја горната формула.
    4. Изборно, внесете го описот на параметрите во полето Коментари . Параметрите ќе се прикажат кога ќе напишете формула во ќелија.
    5. Кликнете OK за да ја зачувате вашата нова функција.

    За детални инструкции, погледнете Како да именувате приспособена функција LAMBDA.

    Штом функцијата ќе добие име, можете да се повикате на неа како и секоја домашна формула.

    Од гледна точка на корисникот , синтаксата на нашата сопствена функција е едноставнаова:

    RemoveChars(низа, знаци)

    Каде:

    • Низа - е оригиналната низа или референца за ќелијата/опсегот што ја содржи низата( с).
    • Карци - знаци за бришење. Може да се претстави со текстуална низа или референца на ќелија.

    За погодност, внесуваме несакани знаци во некоја ќелија, да речеме D2. За да ги отстраните тие знаци од A2, формулата е:

    =RemoveChars(A2, $D$2)

    За формулата да работи правилно, ве молиме обрнете внимание на следниве работи:

    • Во D2 , знаците се наведени без празни места, освен ако сакате да ги елиминирате и празнините.
    • Адресата на ќелијата што ги содржи специјалните знаци е заклучена со знакот $ ($D$2) за да се спречи промената на референцата кога се справувате со формулата до ќелиите подолу.

    И потоа, едноставно ја влечеме формулата надолу и сите знаци наведени во D2 ќе бидат избришани од ќелиите A2 до A6:

    За чистење на повеќе ќелии со една формула, наведете го опсегот A2:A6 за првиот аргумент:

    =RemoveChars(A2:A6, D2)

    Бидејќи формулата се внесува само во најгорната ќелија, не треба да се грижите за заклучување на координатите на ќелијата - релативната референца (D2) работи добро во овој случај. И поради поддршката за динамички низи, формулата автоматски се прелева во сите референцирани ќелии:

    Отстранување на предефинирано множество знаци

    За бришење однапред дефиниран сет на знаци од повеќе ќелии, можете да креиратедруга LAMBDA која ја повикува главната функција RemoveChars и наведете ги непожелните знаци во вториот параметар. На пример:

    За бришење специјални знаци , создадовме приспособена функција со име RemoveSpecialChars :

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

    За отстранете ги броевите од текстуалните низи, создадовме уште една функција со име RemoveNumbers :

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

    Двете горенаведени функции се супер лесни да се користат бидејќи бараат само еден аргумент - оригиналната низа.

    За да се елиминираат специјалните знаци од A2, формулата е:

    =RemoveSpecialChars(A2)

    За да избришете само нумерички знаци:

    =RemoveNumbers(A2)

    Како функционира оваа функција:

    Во суштина, функцијата RemoveChars се врти низ списокот со знаци и отстранува еден знак во исто време. Пред секој рекурзивен повик, функцијата IF ги проверува преостанатите знаци. Ако низата знаци не е празна (знаци""), функцијата се повикува себеси. Веднаш штом ќе се обработи последниот знак, формулата ја враќа низата од нејзината сегашна форма и излегува.

    За детално разложување на формулата, видете Рекурзивна LAMBDA за да ги отстраните несаканите знаци.

    Отстранете специјални знаци со VBA

    Функциите работат во сите верзии на Excel

    Ако функцијата LAMBDA не е достапна во вашиот Excel, ништо не ве спречува од создавање слична функција со VBA. Кориснички дефиниранфункцијата (UDF) може да се напише на два начина.

    Прилагодена функција за бришење специјални знаци рекурзивни :

    Овој код ја емулира логиката на функцијата LAMBDA дискутирана погоре.

    Функција RemoveUnwantedChars(str Како низа , знаци како низа ) If ( "" знаци) Потоа str = Замени(str, Left(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwanted Chars = RemoveUnwantedChars(str, chars) Друго RemoveUnwantedChars = str End If End Function

    Прилагодена функција за отстранување специјални знаци нерекурзивни :

    Овде, кружиме низ несаканите знаци од 1 до Len(chars) и заменете ги оние што се наоѓаат во оригиналната низа со ништо. Функцијата MID ги повлекува несаканите знаци еден по еден и ги пренесува на функцијата Replace.

    Функција RemoveUnwantedChars(str како стринг , знаци како низа ) За индекс = 1 To Len(знаци) str = Replace(str, Mid(chars, индекс, 1), "" ) Следно RemoveUnwantedChars = str Крајна функција

    Вметнете еден од горенаведените кодови во вашата работна книга како што е објаснето во Како да вметнете VBA код во Excel и вашата приспособена функција е подготвена за употреба.

    За да не ја мешаме нашата нова функција дефинирана од корисникот со онаа дефинирана од Ламбда, ја нарековме поинаку:

    RemoveUnwantedChars(низа, знаци)

    Претпоставувајќи дека оригиналната низа е во А2 и несаканите знаци во D2, можеме да се ослободиме од нив користејќи ја оваа формула:

    = RemoveUnwantedChars(A2, $D$2)

    Прилагодена функција со хардкодзнаци

    Ако не сакате да се мачите околу обезбедувањето специјални знаци за секоја формула, можете да ги наведете директно во кодот:

    Функција RemoveSpecialChars(str As String ) As String Dim знаци Како String Dim индекс како Долги знаци = "?¿!¡*%#$(){}[]^&/\~+-" За индекс = 1 До Лен(знаци) str = Замени (ул, Средина (знаци, индекс, 1) , "" ) Next RemoveSpecialChars = str Крајна функција

    Ве молиме имајте на ум дека горната шифра е за демонстративни цели. За практична употреба, погрижете се да ги вклучите сите знаци што сакате да ги избришете во следнава линија:

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

    Оваа приспособена функција е наречена RemoveSpecialChars и бара само еден аргумент - оригиналната низа:

    RemoveSpecialChars(string)

    За да се отстранат специјалните знаци од нашата база на податоци, формулата е:

    =RemoveSpecialChars(A2)

    Отстранете ги знаците што не можат да се печатат во Excel

    Microsoft Excel има специјална функција за бришење знаци што не се печатат - функцијата CLEAN. Технички, ги отстранува првите 32 знаци во 7-битниот ASCII сет (шифри од 0 до 31).

    На пример, за бришење непечатливи знаци од A2, еве ја формулата што треба да се користи :

    =CLEAN(A2)

    Ова ќе ги елиминира знаците што не се печатат, но празнините пред/по текстот и помеѓу зборовите ќе останат.

    За ослободете се од дополнителните простори , завиткајте ја формулата CLEAN во функцијата TRIM:

    =TRIM(CLEAN(A2))

    Сега, сите водечки изадоцнетите празни места се отстранети, додека меѓусебните празни места се сведени на еден знак за празно место:

    Ако сакате да ги избришете апсолутно сите празни места внатре стринг, потоа дополнително заменете го знакот празно место (шифра број 32) со празна низа:

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

    Некои празни места или други невидливи знаци сè уште остануваат во вашиот работен лист? Тоа значи дека тие знаци имаат различни вредности во множеството знаци на Уникод.

    На пример, кодот на знаци на непрекинувачки простор ( ) е 160 и можете да го исчистите користејќи ја оваа формула:

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

    За да избришете специфичен знак што не се печати , прво треба да ја пронајдете неговата вредност на кодот. Деталните упатства и примерите на формулата се тука: Како да отстраните специфичен знак што не се печати.

    Избришете специјални знаци со Ultimate Suite

    Поддржува Excel за Microsoft 365, Excel 2019 - 2010

    Во овој последен пример, дозволете ми да ви го покажам најлесниот начин за отстранување на специјални знаци во Excel. Кога е инсталиран Ultimate Suite, ова е она што треба да го направите:

    1. На картичката Ablebits Data , во групата Text , кликнете Отстрани > Отстрани знаци .

  • На окното на додатокот, изберете го изворниот опсег, изберете Отстрани сетови на знаци и изберете ја саканата опција од паѓачката листа ( Симболи и интерпункциски знаци во овапример).
  • Притиснете го копчето Отстрани .
  • За еден момент, ќе добиете совршен резултат:

    Ако нешто тргне наопаку, не грижете се - резервна копија од вашиот работен лист ќе се креира автоматски бидејќи полето Направете резервна копија од овој работен лист е стандардно избрано.

    Љубопитни сте да ја испробате нашата алатка Отстрани? Врската до верзијата за евалуација е веднаш подолу. Ви благодарам што прочитавте и се надевам дека ќе се видиме на нашиот блог следната недела!

    Достапни преземања

    Избришете специјални знаци - примери (датотека .xlsm)

    Ultimate Suite - пробен период верзија (.exe датотека)

    Мајкл Браун е посветен технолошки ентузијаст со страст за поедноставување на сложените процеси користејќи софтверски алатки. Со повеќе од една деценија искуство во технолошката индустрија, тој ги усоврши своите вештини во Microsoft Excel и Outlook, како и Google Sheets и Docs. Блогот на Мајкл е посветен на споделување на своето знаење и експертиза со другите, обезбедувајќи лесни за следење совети и упатства за подобрување на продуктивноста и ефикасноста. Без разлика дали сте искусен професионалец или почетник, блогот на Мајкл нуди вредни сознанија и практични совети за да го извлечете максимумот од овие основни софтверски алатки.