Talaan ng nilalaman
Sa artikulong ito, matututunan mo kung paano magtanggal ng mga partikular na character mula sa isang text string at mag-alis ng mga hindi gustong character mula sa maraming cell nang sabay-sabay.
Kapag nag-i-import ng data sa Excel mula sa ibang lugar, maraming mga espesyal na character ang maaaring pumunta sa iyong mga worksheet. Ang mas nakakadismaya ay ang ilang mga character ay hindi nakikita, na gumagawa ng dagdag na puting espasyo bago, pagkatapos, o sa loob ng mga string ng teksto. Ang tutorial na ito ay nagbibigay ng mga solusyon para sa lahat ng problemang ito, na hindi ka nahihirapang dumaan sa data cell-by-cell at linisin ang mga hindi gustong character sa pamamagitan ng kamay.
Alisin ang espesyal na character mula sa Excel cell
Upang tanggalin ang isang partikular na character mula sa isang cell, palitan ito ng isang walang laman na string sa pamamagitan ng paggamit ng SUBSTITUTE function sa pinakasimpleng anyo nito:
SUBSTITUTE( cell, char, "")Halimbawa, para matanggal ang isang tandang pananong mula sa A2, ang formula sa B2 ay:
=SUBSTITUTE(A2, "?", "")
Upang alisin ang isang character na wala sa iyong keyboard, maaari mong kopyahin/i-paste ito sa formula mula sa orihinal na cell.
Halimbawa, narito kung paano mo maaalis ang isang baligtad na tandang pananong:
=SUBSTITUTE(A2, "¿", "")
Ngunit kung ang isang hindi gustong character ay invisible o hindi makopya nang tama, paano mo ito ilalagay sa formula? Hanapin lang ang code number nito sa pamamagitan ng paggamit ng CODE function.
Sa aming kaso, ang hindi gustong character ("¿") ay huling nasa cell A2, kaya gumagamit kami ng kumbinasyonng CODE at RIGHT function upang makuha ang natatanging halaga ng code nito, na 191:
=CODE(RIGHT(A2))
Kapag nakuha mo na ang code ng character, ihatid ang kaukulang CHAR function sa generic na formula sa itaas. Para sa aming dataset, ang formula ay sumusunod:
=SUBSTITUTE(A2, CHAR(191),"")
Tandaan. Ang SUBSTITUTE function ay case-sensitive , ibig sabihin ay tinatrato nito ang lowercase at uppercase na mga letra bilang magkaibang mga character. Mangyaring tandaan iyon kung ang iyong hindi gustong karakter ay isang liham.
Magtanggal ng maraming character mula sa string
Sa isa sa mga nakaraang artikulo, tiningnan namin kung paano mag-alis ng mga partikular na character mula sa mga string sa Excel sa pamamagitan ng paglalagay ng ilang SUBSTITUTE function sa isa't isa. Ang parehong diskarte ay maaaring gamitin upang alisin ang dalawa o higit pang hindi gustong mga character nang sabay-sabay:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , char1 , ""), char2 , ""), char3 , "")Halimbawa, para matanggal ang normal na tandang padamdam at tanong pati na rin ang mga baligtad mula sa isang text string sa A2, gamitin ang formula na ito:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
Gayundin ang maaaring gawin sa tulong ng CHAR function, kung saan ang 161 ay ang character code para sa "¡" at ang 191 ay ang character code para sa "¿":
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Ang mga nested SUBSTITUTE function ay gumagana nang maayos para sa isang makatwirang bilang ng mga character, ngunit kung mayroon kang dose-dosenang mga character na aalisin, ang formula ay nagiging masyadong mahaba at mahirap pamahalaan. Ang susunod na halimbawa ay nagpapakita ng amas compact at eleganteng solusyon.
Alisin ang lahat ng hindi gustong character nang sabay-sabay
Gumagana lang ang solusyon sa Excel para sa Microsoft 365
Tulad ng malamang na alam mo, Ang Excel 365 ay may espesyal na function na nagbibigay-daan sa iyong lumikha ng sarili mong mga function, kabilang ang mga recursively kalkulasyon. Ang bagong function na ito ay pinangalanang LAMBDA, at mahahanap mo ang buong detalye tungkol dito sa tutorial na naka-link sa itaas. Sa ibaba, ilarawan ko ang konsepto sa ilang praktikal na halimbawa.
Ang isang custom na function ng LAMBDA upang mag-alis ng mga hindi gustong character ay ang sumusunod:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
Upang magamit ang function na ito sa iyong mga worksheet, kailangan mo muna itong pangalanan. Para dito, pindutin ang Ctrl + F3 upang buksan ang Name Manager , at pagkatapos ay tukuyin ang isang Bagong Pangalan sa ganitong paraan:
- Sa Pangalan box, ilagay ang pangalan ng function: RemoveChars .
- Itakda ang saklaw sa Workbook .
- Sa Tumutukoy sa box, i-paste ang formula sa itaas.
- Opsyonal, ilagay ang paglalarawan ng mga parameter sa kahon na Mga Komento . Ang mga parameter ay ipapakita kapag nag-type ka ng formula sa isang cell.
- I-click ang OK upang i-save ang iyong bagong function.
Para sa mga detalyadong tagubilin, pakitingnan Paano pangalanan ang isang custom na function ng LAMBDA.
Kapag nakakuha na ng pangalan ang function, maaari mo itong i-refer tulad ng anumang katutubong formula.
Mula sa pananaw ng user , ang syntax ng aming custom na function ay kasing simple ngito:
RemoveChars(string, chars)Kung saan:
- String - ay ang orihinal na string, o isang reference sa cell/range na naglalaman ng string( s).
- Mga character - mga character na tatanggalin. Maaaring katawanin ng text string o cell reference.
Para sa kaginhawahan, nag-input kami ng mga hindi gustong character sa ilang cell, sabihin ang D2. Upang alisin ang mga character na iyon mula sa A2, ang formula ay:
=RemoveChars(A2, $D$2)
Para gumana nang tama ang formula, pakipansin ang mga sumusunod na bagay:
- Sa D2 , ang mga character ay nakalista nang walang mga puwang, maliban kung gusto mo ring mag-alis ng mga puwang.
- Ang address ng cell na naglalaman ng mga espesyal na character ay naka-lock na may $ sign ($D$2) upang maiwasan ang pagbabago ng reference kapag kinakaya ang formula sa mga cell sa ibaba.
At pagkatapos, i-drag lang namin ang formula pababa at i-delete ang lahat ng character na nakalista sa D2 mula sa mga cell A2 hanggang A6:
Upang linisin ang maramihang mga cell gamit ang isang formula, ibigay ang hanay na A2:A6 para sa unang argumento:
=RemoveChars(A2:A6, D2)
Dahil ang formula ay ipinasok lamang sa pinakamataas na cell, hindi mo kailangang mag-alala tungkol sa pag-lock ng mga coordinate ng cell - isang kamag-anak na sanggunian (D2) ay gumagana nang maayos sa kasong ito. At dahil sa suporta para sa mga dynamic na array, ang formula ay awtomatikong dumaloy sa lahat ng mga na-refer na cell:
Pag-alis ng paunang natukoy na hanay ng character
Upang tanggalin ang isang paunang natukoy na hanay ng mga character mula sa maraming mga cell, maaari kang lumikhaisa pang LAMBDA na tumatawag sa pangunahing RemoveChars function at tukuyin ang mga hindi kanais-nais na character sa 2nd parameter. Halimbawa:
Upang tanggalin ang mga espesyal na character , gumawa kami ng custom na function na pinangalanang RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
Para kay alisin ang mga numero mula sa mga string ng text, gumawa kami ng isa pang function na pinangalanang RemoveNumbers :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Ang parehong mga function sa itaas ay napakadali gamitin dahil nangangailangan lang sila ng isang argument - ang orihinal na string.
Upang alisin ang mga espesyal na character mula sa A2, ang formula ay:
=RemoveSpecialChars(A2)
Upang tanggalin lamang ang mga numerong character:
=RemoveNumbers(A2)
Paano gumagana ang function na ito:
Sa esensya, ang function na RemoveChars ay umiikot sa listahan ng mga character at nag-aalis ng isang character sa isang pagkakataon. Bago ang bawat recursive na tawag, sinusuri ng function na IF ang natitirang mga character. Kung ang string na chars ay walang laman (mga character""), tatawagin ng function ang sarili nito. Sa sandaling maproseso ang huling character, ibabalik ng formula ang string sa kasalukuyan nitong anyo at lalabas.
Para sa detalyadong pagkasira ng formula, pakitingnan ang Recursive LAMBDA upang alisin ang mga hindi gustong character.
Alisin ang mga espesyal na character na may VBA
Gumagana ang mga function sa lahat ng bersyon ng Excel
Kung hindi available ang LAMBDA function sa iyong Excel, walang makakapigil sa iyo mula sa paglikha ng isang katulad na function sa VBA. Isang user-definefunction (UDF) ay maaaring isulat sa dalawang paraan.
Custom na function para magtanggal ng mga espesyal na character recursive :
Ginagaya ng code na ito ang logic ng LAMBDA function na tinalakay sa itaas.
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 FunctionCustom na function para alisin ang mga espesyal na character non-recursive :
Dito, umiikot kami sa mga hindi gustong character mula 1 hanggang Len(chars) at palitan ang mga matatagpuan sa orihinal na string ng wala. Ang MID function ay kumukuha ng mga hindi gustong character nang isa-isa at ipinapasa ang mga ito sa Replace function.
Function RemoveUnwantedChars(str As String , chars As String ) Para sa index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "") Next RemoveUnwantedChars = str End FunctionIpasok ang isa sa mga code sa itaas sa iyong workbook gaya ng ipinaliwanag sa Paano magpasok ng VBA code sa Excel, at handa nang gamitin ang iyong custom na function.
Para hindi malito ang aming bagong function na tinukoy ng user sa Lambda-defined, pinangalanan namin ito nang iba:
RemoveUnwantedChars(string, chars)Ipagpalagay na ang orihinal na string ay nasa A2 at hindi gustong mga character sa D2, maaari nating alisin ang mga ito gamit ang formula na ito:
= RemoveUnwantedChars(A2, $D$2)
Custom na function na may hardcodedmga character
Kung ayaw mong mag-abala tungkol sa pagbibigay ng mga espesyal na character para sa bawat formula, maaari mong tukuyin ang mga ito nang direkta sa code:
Function RemoveSpecialChars(str As String ) Bilang String Dim chars Bilang String Dim index As Long chars = "?¿!¡*%#$(){}[]^&/\~+-" Para sa index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1) , "") Susunod na RemoveSpecialChars = str End FunctionPakitandaan na ang code sa itaas ay para sa mga layunin ng pagpapakita. Para sa praktikal na paggamit, tiyaking isama ang lahat ng character na gusto mong tanggalin sa sumusunod na linya:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Ang custom na function na ito ay pinangalanang RemoveSpecialChars at nangangailangan lamang ito ng isa argument - ang orihinal na string:
RemoveSpecialChars(string)Upang tanggalin ang mga espesyal na character mula sa aming dataset, ang formula ay:
=RemoveSpecialChars(A2)
Alisin ang mga hindi napi-print na character sa Excel
May espesyal na function ang Microsoft Excel para tanggalin ang mga hindi naka-print na character - ang function na CLEAN. Sa teknikal, inaalis nito ang unang 32 character sa 7-bit na ASCII set (mga code 0 hanggang 31).
Halimbawa, para tanggalin ang mga hindi napi-print na character mula sa A2, narito ang formula na gagamitin :
=CLEAN(A2)
Tatanggalin nito ang mga hindi naka-print na character, ngunit mananatili ang mga puwang bago/pagkatapos ng text at sa pagitan ng mga salita.
Para kay alisin ang mga karagdagang espasyo , balutin ang CLEAN formula sa TRIM function:
=TRIM(CLEAN(A2))
Ngayon, lahat ng nangunguna atang mga sumusunod na puwang ay inaalis, habang ang mga nasa pagitan ng mga puwang ay binabawasan sa isang karakter ng espasyo:
Kung gusto mong ganap na tanggalin ang lahat ng espasyo sa loob isang string, pagkatapos ay palitan ang space character (code number 32) ng walang laman na string:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Nananatili pa rin ang ilang espasyo o iba pang invisible na character sa iyong worksheet? Ibig sabihin, ang mga character na iyon ay may iba't ibang value sa Unicode character set.
Halimbawa, ang character code ng isang hindi nasira na espasyo ( ) ay 160 at maaari mo itong i-purge gamit ang formula na ito:
=SUBSTITUTE(A2, CHAR(160)," ")
Upang burahin ang isang partikular na hindi naka-print na character , kailangan mo munang hanapin ang halaga ng code nito. Narito ang mga detalyadong tagubilin at mga halimbawa ng formula: Paano mag-alis ng partikular na hindi naka-print na character.
Magtanggal ng mga espesyal na character gamit ang Ultimate Suite
Sinusuportahan ang Excel para sa Microsoft 365, Excel 2019 - 2010
Sa huling halimbawang ito, hayaan mong ipakita ko sa iyo ang pinakamadaling paraan upang alisin ang mga espesyal na character sa Excel. Kapag naka-install ang Ultimate Suite, ito ang kailangan mong gawin:
- Sa tab na Ablebits Data , sa grupong Text , i-click ang Alisin > Alisin ang Mga Character .
Sa ilang sandali, makakakuha ka ng perpektong resulta:
Kung magkaproblema, huwag mag-alala - awtomatikong gagawa ng backup na kopya ng iyong worksheet habang ang kahon na I-back up ang worksheet na ito ay pinili bilang default.
Gustong gusto mong subukan ang aming Remove tool? Ang isang link sa bersyon ng pagsusuri ay nasa ibaba mismo. Salamat sa pagbabasa at umaasa akong makita ka sa aming blog sa susunod na linggo!
Mga available na download
Tanggalin ang mga espesyal na character - mga halimbawa (.xlsm file)
Ultimate Suite - trial bersyon (.exe file)