Tabl cynnwys
Yn yr erthygl hon, byddwch yn dysgu sut i ddileu nodau penodol o linyn testun a thynnu nodau diangen o gelloedd lluosog ar unwaith.
Wrth fewnforio data i Excel o rywle arall, efallai y bydd llawer o gymeriadau arbennig yn teithio i'ch taflenni gwaith. Yr hyn sydd hyd yn oed yn fwy rhwystredig yw bod rhai cymeriadau yn anweledig, sy'n cynhyrchu gofod gwyn ychwanegol cyn, ar ôl neu y tu mewn i linynnau testun. Mae'r tiwtorial hwn yn darparu atebion i'r holl broblemau hyn, gan arbed y drafferth o orfod mynd trwy'r gell data-wrth-gell a chael gwared ar nodau diangen â llaw.
I ddileu nod penodol o gell, gosodwch linyn gwag yn ei le drwy ddefnyddio'r ffwythiant SUBSTITUTE yn ei ffurf symlaf:
SUBSTITUTE( cell , torgoch , "")Er enghraifft, i ddileu marc cwestiwn o A2, y fformiwla yn B2 yw:
=SUBSTITUTE(A2, "?", "")
I dynnu a nod nad yw'n bresennol ar eich bysellfwrdd, gallwch ei gopïo/gludo i'r fformiwla o'r gell wreiddiol.
Er enghraifft, dyma sut y gallwch gael gwared ar farc cwestiwn gwrthdro:
=SUBSTITUTE(A2, "¿", "")
Ond os yw nod digroeso yn anweledig neu ddim yn copïo'n gywir, sut ydych chi'n ei roi yn y fformiwla? Yn syml, darganfyddwch ei rif cod trwy ddefnyddio'r ffwythiant CODE.
Yn ein hachos ni, mae'r nod diangen ("¿") yn dod olaf yng nghell A2, felly rydym yn defnyddio cyfuniado'r ffwythiannau COD a DDE i adalw ei werth cod unigryw, sef 191:
=CODE(RIGHT(A2))
Ar ôl i chi gael cod y nod, gwasanaethwch y CHAR cyfatebol swyddogaeth i'r fformiwla generig uchod. Ar gyfer ein set ddata, mae'r fformiwla yn mynd fel a ganlyn:
=SUBSTITUTE(A2, CHAR(191),"")
Nodyn. Mae'r ffwythiant SUBSTITUTE yn sensitif i lythrennau , sy'n golygu ei bod yn trin llythrennau bach a phriflythrennau fel nodau gwahanol. Cadwch hynny mewn cof os mai llythyren yw eich cymeriad digroeso.
Dileu nodau lluosog o'r llinyn
Yn un o'r erthyglau blaenorol, fe wnaethom edrych ar sut i dynnu nodau penodol o linynnau yn Excel trwy nythu sawl swyddogaeth SUBSTITUTE un i mewn i'r llall. Gellir defnyddio'r un dull i ddileu dau nod neu fwy ar yr un pryd:
SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( cell , tor1 ," ""), tolosg2 , ""), char3 , "")Er enghraifft, i ddileu ebychnod arferol a marciau cwestiwn yn ogystal â'r rhai gwrthdro o linyn testun yn A2, defnyddiwch y fformiwla hon:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "!", ""), "¡", ""), "?", ""), "¿", "")
Gellir gwneud yr un peth gyda chymorth swyddogaeth CHAR, lle mai 161 yw'r cod nod ar gyfer "¡" a 191 yw'r cod nod ar gyfer "¿":
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A3, "!", ""), "?", ""), CHAR(161), ""), CHAR(191), "")
Mae swyddogaethau SUBSTITUTE nythog yn gweithio'n iawn ar gyfer nifer rhesymol o nodau, ond os oes gennych ddwsinau o nodau i'w tynnu, mae'r fformiwla'n mynd yn rhy hir ac anodd ei rheoli. Mae'r enghraifft nesaf yn dangos adatrysiad mwy cryno a chain.
Dileu pob nod diangen ar unwaith
Dim ond yn Excel ar gyfer Microsoft 365
Mae'r datrysiad yn gweithio. Mae gan Excel 365 swyddogaeth arbennig sy'n eich galluogi i greu eich swyddogaethau eich hun, gan gynnwys y rhai sy'n cyfrifo'n rheolaidd. Enw'r swyddogaeth newydd hon yw LAMBDA, a gallwch ddod o hyd i fanylion llawn amdani yn y tiwtorial uchod. Isod, byddaf yn darlunio'r cysyniad gyda chwpl o enghreifftiau ymarferol.
Mae ffwythiant LAMBDA wedi'i deilwra i dynnu nodau diangen fel a ganlyn:
=LAMBDA(string, chars, IF(chars"", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string))
- Yn y Enw blwch, rhowch enw'r ffwythiant: Dileu Siars .
- Gosodwch y sgôp i Llyfr Gwaith .
- Yn y Yn cyfeirio at blwch, gludwch y fformiwla uchod.
- Yn ddewisol, rhowch ddisgrifiad o'r paramedrau yn y blwch Sylwadau . Bydd y paramedrau'n cael eu dangos pan fyddwch chi'n teipio fformiwla mewn cell.
- Cliciwch OK i gadw eich ffwythiant newydd.
Am y cyfarwyddiadau manwl, gweler Sut i enwi ffwythiant LAMBDA wedi'i deilwra.
Unwaith y bydd y ffwythiant yn cael enw, gallwch gyfeirio ato fel unrhyw fformiwla frodorol.
O safbwynt y defnyddiwr , mae cystrawen ein swyddogaeth arfer mor syml âhwn:
DileuChars(llinyn, nodau)Ble:
- Llinyn - yw'r llinyn gwreiddiol, neu gyfeiriad at y gell/ystod sy'n cynnwys y llinyn( s).
- Chars - nodau i'w dileu. Gellir ei gynrychioli gan linyn testun neu gyfeirnod cell.
Er hwylustod, rydym yn mewnbynnu nodau diangen mewn rhai cell, dyweder D2. I dynnu'r nodau hynny o A2, y fformiwla yw:
=RemoveChars(A2, $D$2)
Er mwyn i'r fformiwla weithio'n gywir, sylwch ar y pethau canlynol:
- Yn D2 , mae nodau wedi'u rhestru heb fylchau, oni bai eich bod am ddileu bylchau hefyd.
- Mae cyfeiriad y gell sy'n cynnwys y nodau arbennig wedi'i gloi gyda'r arwydd $ ($D$2) i atal y cyfeirnod rhag newid wrth ymdopi â'r fformiwla i'r celloedd isod.
Ac yna, yn syml, rydym yn llusgo'r fformiwla i lawr ac wedi dileu'r holl nodau a restrir yn D2 o gelloedd A2 trwy A6:
<3.
I lanhau celloedd lluosog ag un fformiwla, rhowch yr ystod A2:A6 ar gyfer y ddadl 1af:
=RemoveChars(A2:A6, D2)
Gan fod y fformiwla wedi'i nodi yn y gell uchaf yn unig, nid oes angen i chi boeni am gloi'r cyfesurynnau cell - mae cyfeirnod cymharol (D2) yn gweithio'n iawn yn yr achos hwn. Ac oherwydd cefnogaeth ar gyfer araeau deinamig, mae'r fformiwla'n gollwng yn awtomatig i'r holl gelloedd y cyfeirir atynt:
Tynnu set nodau wedi'i diffinio ymlaen llaw
I ddileu set o nodau wedi'u diffinio ymlaen llaw cymeriadau o gelloedd lluosog, gallwch chi greuLAMBDA arall sy'n galw'r brif swyddogaeth RemoveChars ac yn nodi'r nodau annymunol yn yr 2il baramedr. Er enghraifft:
I ddileu nodau arbennig , rydym wedi creu ffwythiant personol o'r enw RemoveSpecialChars :
=LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))
To tynnwch rifau o linynnau testun, rydym wedi creu un ffwythiant arall o'r enw Dileu Rhifau :
=LAMBDA(string, RemoveChars(string, "0123456789"))
Mae'r ddwy swyddogaeth uchod yn hynod hawdd i'w defnyddio gan fod angen un arg yn unig - y llinyn gwreiddiol.
I ddileu nodau arbennig o A2, y fformiwla yw:
=RemoveSpecialChars(A2)
24>
I ddileu nodau rhifol yn unig:
=RemoveNumbers(A2)
Sut mae'r swyddogaeth hon yn gweithio:
Yn ei hanfod, mae'r ffwythiant RemoveChars yn dolennu drwy'r rhestr o chars ac yn tynnu un nod ar y tro. Cyn pob galwad ailadroddus, mae'r swyddogaeth IF yn gwirio'r nodau sy'n weddill. Os nad yw'r llinyn chars yn wag (chars"), mae'r ffwythiant yn galw ei hun. Cyn gynted ag y bydd y nod olaf wedi'i brosesu, mae'r fformiwla yn dychwelyd llinyn yn ei ffurf bresennol ac yn gadael.
Am ddadansoddiad manwl o'r fformiwla, gweler Recursive LAMBDA i ddileu nodau diangen.
3>Dileu nodau arbennig gyda VBA
Mae'r ffwythiannau'n gweithio ym mhob fersiwn o Excel
Os nad yw'r ffwythiant LAMBDA ar gael yn eich Excel, nid oes dim yn eich rhwystro rhag creu swyddogaeth debyg gyda VBA. Mae defnyddiwr-diffiniediggellir ysgrifennu ffwythiant (UDF) mewn dwy ffordd.
Fwythiant personol i ddileu nodau arbennig ailgyrchol :
Mae'r cod hwn yn efelychu rhesymeg y ffwythiant LAMBDA a drafodwyd uchod.
Swyddogaeth RemoveUnwantedChars(str Fel Llinynnol , chars Fel Llinyn ) Os ("" chars) Yna str = Amnewid(str, Chwith(chars, 1)," "" ) chars = I'r dde(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Arall RemoveUnwantedChars = str Diwedd Os Diwedd SwyddogaethSwyddogaeth personol i dynnu nodau arbennig anailadroddus :
Yma, rydym yn beicio drwy nodau diangen o 1 i Len(chars) a disodli'r rhai a geir yn y llinyn gwreiddiol heb ddim. Mae'r ffwythiant MID yn tynnu nodau dieisiau fesul un ac yn eu trosglwyddo i'r ffwythiant Amnewid.
Swyddogaeth DileuCharsUnwanted(str Fel Llinyn , nodau Fel Llinyn ) Ar gyfer mynegai = 1 I Len(chars) str = Amnewid(str, Canolbarth(chars, mynegai, 1), "" ) Nesaf RemoveUnwantedChars = str Swyddogaeth DiweddMewnosodwch un o'r codau uchod yn eich llyfr gwaith fel yr eglurwyd yn Sut i fewnosod cod VBA yn Excel, ac mae eich ffwythiant personol yn barod i'w ddefnyddio.
Peidio â drysu ein swyddogaeth newydd a ddiffinnir gan ddefnyddwyr gyda'r un a ddiffinnir gan Lambda, rydym wedi ei henwi'n wahanol:
RemoveUnwantedChars(llinyn, chars)Gan gymryd bod y llinyn gwreiddiol yn A2 a nodau digroeso yn D2, gallwn gael gwared arnynt gan ddefnyddio'r fformiwla hon:
= RemoveUnwantedChars(A2, $D$2)
Swyddogaeth personol gyda chod calednodau
Os nad ydych am drafferthu cyflenwi nodau arbennig ar gyfer pob fformiwla, gallwch eu nodi'n uniongyrchol yn y cod:
Swyddogaeth DileuSpecialChars(str Fel Llinynnol ) Fel Llinynnol Dim nodau Fel String Dim Mynegai Fel Siartiau hir = "?¿!¡*%#$(){}[]^&/\~+-" Ar gyfer mynegai = 1 I Len(chars) str = Disodli(str, Canolbarth(nodau, mynegai, 1) , "" ) Nesaf RemoveSpecialChars = str Swyddogaeth DiweddCofiwch fod y cod uchod at ddibenion arddangos. Er defnydd ymarferol, gofalwch eich bod yn cynnwys yr holl nodau rydych am eu dileu yn y llinell ganlynol:
chars = "?¿!¡*%#$(){}[]^&/\~+-"
Enw yw'r ffwythiant personol hwn RemoveSpecialChars ac mae angen un yn unig arni arg - y llinyn gwreiddiol:
RemoveSpecialChars(string)I dynnu nodau arbennig o'n set ddata, y fformiwla yw:
=RemoveSpecialChars(A2)
Dileu nodau na ellir eu hargraffu yn Excel
Mae gan Microsoft Excel swyddogaeth arbennig i ddileu nodau nad ydynt yn argraffu - y swyddogaeth CLEAN. Yn dechnegol, mae'n tynnu oddi ar y 32 nod cyntaf yn y set ASCII 7-did (codau 0 i 31).
Er enghraifft, i ddileu nodiadau anargraffadwy o A2, dyma'r fformiwla i'w defnyddio :
=CLEAN(A2)
Bydd hyn yn dileu nodau nad ydynt yn argraffu, ond bydd bylchau cyn/ar ôl testun a rhwng geiriau yn parhau.
I cael gwared ar mannau ychwanegol , lapio'r fformiwla GLAN yn y swyddogaeth TRIM:
=TRIM(CLEAN(A2))
Nawr, mae pob un yn arwain amae bylchau ôl yn cael eu dileu, tra bod bylchau rhyngddynt yn cael eu lleihau i un nod gofod:
Os hoffech ddileu holl fylchau y tu mewn yn llwyr llinyn, yna rhowch linyn gwag yn lle'r nod gofod (cod rhif 32) hefyd:
=TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))
Mae rhai bylchau neu nodau anweledig eraill yn aros o hyd eich taflen waith? Mae hynny'n golygu bod gan y nodau hynny werthoedd gwahanol yn y set nodau Unicode.
Er enghraifft, cod nodau gofod di-dor ( ) yw 160 a gallwch ei lanhau gan ddefnyddio'r fformiwla hon:
=SUBSTITUTE(A2, CHAR(160)," ")
I ddileu nodwedd di-argraffu penodol , mae angen i chi ddod o hyd i'w werth cod yn gyntaf. Mae'r cyfarwyddiadau manwl a'r enghreifftiau fformiwla yma: Sut i dynnu nod penodol nad yw'n argraffu.
Dileu nodau arbennig gyda Ultimate Suite
Yn cefnogi Excel ar gyfer Microsoft 365, Excel 2019 - 2010
Yn yr enghraifft olaf hon, gadewch i mi ddangos y ffordd hawsaf i chi gael gwared ar nodau arbennig yn Excel. Gyda'r Ultimate Suite wedi'i gosod, dyma beth sydd angen i chi ei wneud:
- Ar y tab Ablebits Data , yn y grŵp Text , cliciwch Tynnu > Dileu Nodau .
Mewn eiliad, fe gewch ganlyniad perffaith:
Os aiff rhywbeth o'i le, peidiwch â phoeni - bydd copi wrth gefn o'ch taflen waith yn cael ei greu'n awtomatig gan fod y blwch Cefnogi'r daflen waith hon yn cael ei ddewis yn ddiofyn.
Awyddus i roi cynnig ar ein hofferyn Dileu? Mae dolen i'r fersiwn gwerthuso isod. Diolch i chi am ddarllen a gobeithio y gwelwn ni chi ar ein blog wythnos nesaf!
Lawrlwythiadau ar gael
Dileu nodau arbennig - enghreifftiau (ffeil .xlsm)
Swît Ultimate - treial fersiwn (ffeil .exe)