Змест
У гэтым артыкуле вы даведаецеся, як выдаліць пэўныя сімвалы з тэкставага радка і выдаліць непатрэбныя сімвалы з некалькіх вочак адначасова.
Пры імпарце дадзеных у Excel з іншага месца, шмат спецыяльных сімвалаў можа перамяшчацца на вашы працоўныя аркушы. Што яшчэ больш засмучае, так гэта тое, што некаторыя сімвалы нябачныя, што стварае дадатковы прабел да, пасля або ўнутры тэкставых радкоў. Гэты падручнік змяшчае рашэнні для ўсіх гэтых праблем, пазбаўляючы вас ад неабходнасці праглядаць дадзеныя па ячэйках і выдаляць непажаданыя сімвалы ўручную.
Выдаліце спецыяльны сімвал з ячэйкі Excel
Каб выдаліць пэўны сімвал з ячэйкі, заменіце яго пустым радком, выкарыстоўваючы функцыю SUBSTITUTE у яе найпрасцейшай форме:
SUBSTITUTE( cell, char, "")Напрыклад, каб выдаліць пытальнік з A2, формула ў B2 такая:
=SUBSTITUTE(A2, "?", "")
Каб выдаліць сімвал, якога няма на вашай клавіятуры, вы можаце скапіяваць/уставіць яго ў формулу з зыходнай ячэйкі.
Напрыклад, вось як вы можаце пазбавіцца ад перавернутага пытальніка:
=SUBSTITUTE(A2, "¿", "")
Але калі непажаданы сімвал нябачны або няправільна капіруецца, як змясціць яго ў формулу? Проста знайдзіце яго кодавы нумар з дапамогай функцыі CODE.
У нашым выпадку непажаданы сімвал ("¿") стаіць апошнім у ячэйцы A2, таму мы выкарыстоўваем камбінацыюфункцый CODE і RIGHT, каб атрымаць унікальнае значэнне кода, якое складае 191:
=CODE(RIGHT(A2))
Пасля таго як вы атрымаеце код персанажа, падайце адпаведны CHAR функцыя да агульнай формулы вышэй. Для нашага набору дадзеных формула выглядае наступным чынам:
=SUBSTITUTE(A2, CHAR(191),"")
Заўвага. Функцыя SUBSTITUTE адчувальная да рэгістра , што азначае, што яна разглядае малыя і вялікія літары як розныя сімвалы. Майце гэта на ўвазе, калі ваш непажаданы персанаж - літара.
Выдаліць некалькі сімвалаў з радка
У адным з папярэдніх артыкулаў мы разгледзелі, як выдаліць пэўныя сімвалы з радкоў у Excel, уклаўшы некалькі функцый SUBSTITUTE адна ў іншую. Той жа падыход можа быць выкарыстаны для выдалення двух ці больш непажаданых сімвалаў за адзін раз:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")Напрыклад, каб выдаліць звычайныя клічнікі і пытальнікі, а таксама інвертаваныя з тэкставага радка ў A2, выкарыстоўвайце наступную формулу:
=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, каб адкрыць Дыспетчар імёнаў , а затым вызначыце Новае імя такім чынам:
- У Імя поле, увядзіце імя функцыі: RemoveChars .
- Усталюйце вобласць Workbook .
- У Спасылаецца на , устаўце прыведзеную вышэй формулу.
- Дадаткова ўвядзіце апісанне параметраў у поле Каментарыі . Параметры будуць адлюстроўвацца, калі вы ўводзіце формулу ў ячэйку.
- Націсніце ОК , каб захаваць новую функцыю.
Падрабязныя інструкцыі гл. Як назваць карыстальніцкую функцыю LAMBDA.
Пасля таго, як функцыя атрымае імя, вы можаце звяртацца да яе, як да любой роднай формулы.
З пункту гледжання карыстальніка , сінтаксіс нашай карыстальніцкай функцыі такі ж просты, якгэта:
RemoveChars(радок, сімвалы)Дзе:
- Радок - зыходны радок або спасылка на ячэйку/дыяпазон, які змяшчае радок( s).
- Chars - сімвалы для выдалення. Можа быць прадстаўлены тэкставым радком або спасылкай на ячэйку.
Для зручнасці мы ўводзім непажаданыя сімвалы ў некаторую ячэйку, скажам, D2. Каб выдаліць гэтыя сімвалы з A2, прывядзіце наступную формулу:
=RemoveChars(A2, $D$2)
Каб формула працавала правільна, звярніце ўвагу на наступнае:
- У D2 , сімвалы пералічаны без прабелаў, калі вы не жадаеце таксама выдаліць прабелы.
- Адрас ячэйкі, якая змяшчае спецыяльныя сімвалы, заблакіраваны знакам $ ($D$2), каб прадухіліць змяненне спасылкі пры апрацоўцы формулу ў ячэйкі ніжэй.
А потым мы проста перацягваем формулу ўніз і выдаляем усе сімвалы, пералічаныя ў D2, з ячэек A2 па A6:
Каб ачысціць некалькі вочак адной формулай, увядзіце дыяпазон A2:A6 для першага аргумента:
=RemoveChars(A2:A6, D2)
Паколькі формула ўводзіцца толькі ў самую верхнюю ячэйку, вам не трэба турбавацца аб блакіроўцы каардынатаў ячэйкі - у гэтым выпадку адносная спасылка (D2) выдатна працуе. І дзякуючы падтрымцы дынамічных масіваў, формула аўтаматычна разліваецца ва ўсе ячэйкі, на якія спасылаюцца:
Выдаленне загадзя вызначанага набору сімвалаў
Каб выдаліць загадзя вызначаны набор знакаў сімвалы з некалькіх вочак, вы можаце стварыцьіншы LAMBDA, які выклікае асноўную функцыю RemoveChars і паказвае непажаданыя сімвалы ў 2-м параметры. Напрыклад:
Каб выдаліць спецыяльныя сімвалы , мы стварылі карыстальніцкую функцыю з назвай RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
Каб выдаліць лічбы з тэкставых радкоў, мы стварылі яшчэ адну функцыю пад назвай RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Абедзве вышэйзгаданыя функцыі вельмі простыя для выкарыстання, паколькі яны патрабуюць толькі аднаго аргументу - зыходнага радка.
Каб выдаліць спецыяльныя сімвалы з A2, формула:
=RemoveSpecialChars(A2)
Каб выдаліць толькі лічбавыя сімвалы:
=RemoveNumbers(A2)
Як гэта функцыя працуе:
Па сутнасці, функцыя RemoveChars праходзіць па спісе знакаў і выдаляе па адным сімвалу. Перад кожным рэкурсіўным выклікам функцыя КАЛІ правярае пакінутыя сімвалы. Калі радок chars не пусты (chars""), функцыя выклікае сама сябе. Як толькі апошні сімвал быў апрацаваны, формула вяртае радок у яго цяперашнюю форму і выходзіць.
Падрабязную разбіўку формулы глядзіце, калі ласка, у Рэкурсіўнай LAMBDA, каб выдаліць непатрэбныя сімвалы.
Выдаліце спецыяльныя сімвалы з дапамогай VBA
Функцыі працуюць ва ўсіх версіях Excel
Калі функцыя LAMBDA недаступная ў вашым Excel, нішто не перашкаджае ад стварэння аналагічнай функцыі з VBA. Вызначаецца карыстальнікамфункцыя (UDF) можа быць запісана двума спосабамі.
Карыстальніцкая функцыя для выдалення спецыяльных сімвалаў рэкурсіўная :
Гэты код эмулюе логіку функцыі LAMBDA, разгледжанай вышэй.
Функцыя 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Карыстальніцкая функцыя для выдалення спецыяльных сімвалаў нерэкурсіўны :
Тут мы перабіраем непажаданыя сімвалы ад 1 да Len(chars) і замяніць знойдзеныя ў зыходным радку нічым. Функцыя MID выцягвае непажаданыя сімвалы адзін за адным і перадае іх у функцыю Replace.
Функцыя 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Устаўце адзін з прыведзеных вышэй кодаў у вашу працоўную кнігу, як тлумачыцца ў раздзеле "Як уставіць код VBA ў Excel", і ваша карыстальніцкая функцыя будзе гатовая да выкарыстання.
Каб не блытаць нашу новую карыстальніцкую функцыю з лямбда-функцыяй, мы назвалі яе па-іншаму:
RemoveUnwantedChars(string, chars)Калі выказаць здагадку, што зыходны радок знаходзіцца ў A2, а непажаданыя сімвалы ў D2, мы можам пазбавіцца ад іх з дапамогай гэтай формулы:
= RemoveUnwantedChars(A2, $D$2)
Карыстальніцкая функцыя з жорсткім кодамсімвалы
Калі вы не жадаеце турбавацца пра пастаўку спецыяльных сімвалаў для кожнай формулы, вы можаце вызначыць іх непасрэдна ў кодзе:
Функцыя RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Доўгія сімвалы = "?¿!¡*%#$(){}[]^&/\~+-" Для індэкса = 1 Да Len(сімвалы) str = Замяніць(str, Mid(chars, index, 1) , "" ) Далей RemoveSpecialChars = str End FunctionМайце на ўвазе, што прыведзены вышэй код прызначаны для дэманстрацыйных мэтаў. Для практычнага выкарыстання не забудзьцеся ўключыць усе сімвалы, якія вы хочаце выдаліць, у наступны радок:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Гэта карыстальніцкая функцыя называецца RemoveSpecialChars і для яе патрабуецца толькі адзін аргумент - зыходны радок:
RemoveSpecialChars(радок)Каб выдаліць спецыяльныя сімвалы з нашага набору дадзеных, формула:
=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), ""))))
Некаторыя прабелы або іншыя нябачныя сімвалы ўсё яшчэ застаюцца ў ваш працоўны ліст? Гэта азначае, што гэтыя сімвалы маюць розныя значэнні ў наборы сімвалаў Unicode.
Напрыклад, код сімвала неразрыўнага прабелу ( ) роўны 160, і вы можаце ачысціць яго з дапамогай гэтай формулы:
=SUBSTITUTE(A2, CHAR(160)," ")
Каб сцерці канкрэтны недрукаваны сімвал , вам трэба спачатку знайсці яго кодавае значэнне. Падрабязныя інструкцыі і прыклады формул знаходзяцца тут: Як выдаліць пэўны недрукаваны сімвал.
Выдаленне спецыяльных сімвалаў з дапамогай Ultimate Suite
Падтрымлівае Excel для Microsoft 365, Excel 2019 - 2010
У гэтым апошнім прыкладзе дазвольце мне паказаць вам самы просты спосаб выдалення спецыяльных сімвалаў у Excel. Калі ўсталяваны Ultimate Suite, вось што вам трэба зрабіць:
- На ўкладцы Ablebits Data у групе Тэкст націсніце Выдаліць > Выдаліць сімвалы .
Праз імгненне вы атрымаеце выдатны вынік:
Калі нешта пойдзе не так, не хвалюйцеся - рэзервовая копія вашага аркуша будзе створана аўтаматычна, бо поле Стварыць рэзервовую копію гэтага аркуша выбрана па змаўчанні.
Цікава паспрабаваць наш інструмент выдалення? Спасылка на ацэначную версію знаходзіцца прама ніжэй. Я дзякую вам за чытанне і спадзяюся ўбачыць вас у нашым блогу на наступным тыдні!
Даступныя спампоўкі
Выдаліць спецыяльныя сімвалы - прыклады (.xlsm файл)
Ultimate Suite - пробная версія версія (файл .exe)