Kiel forigi specialajn / nedeziratajn signojn en Excel

  • Kundividu Ĉi Tion
Michael Brown

En ĉi tiu artikolo, vi lernos kiel forigi specifajn signojn de teksta ĉeno kaj forigi nedeziratajn signojn de pluraj ĉeloj samtempe.

Kiam importado de datumoj al Excel de ie aliloke, multaj specialaj signoj povas vojaĝi al viaj laborfolioj. Kio estas eĉ pli frustra estas ke kelkaj signoj estas nevideblaj, kio produktas kroman blankan spacon antaŭ, post aŭ ene de tekstaj ĉenoj. Ĉi tiu lernilo provizas solvojn por ĉiuj ĉi tiuj problemoj, ŝparante al vi la problemon devi trairi la datumojn ĉelo post ĉelo kaj purigi nedeziratajn signojn permane.

    Forigi specialan signon de Excel-ĉelo.

    Por forigi specifan signon de ĉelo, anstataŭigu ĝin per malplena ĉeno uzante la funkcion SUBSTITUTE en ĝia plej simpla formo:

    SUBSTITUTE( ĉelo, char, "")

    Ekzemple, por forigi demandosignon de A2, la formulo en B2 estas:

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

    Por forigi signo kiu ne ĉeestas sur via klavaro, vi povas kopii/glui ĝin al la formulo de la origina ĉelo.

    Ekzemple, jen kiel vi povas forigi inversan demandosignon:

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

    Sed se nedezirata signo estas nevidebla aŭ ne kopias ĝuste, kiel oni metas ĝin en la formulon? Simple, trovu ĝian kodnumeron uzante la CODE-funkcion.

    En nia kazo, la nedezirata signo ("¿") venas la lasta en ĉelo A2, do ni uzas kombinaĵon.de la funkcioj CODE kaj RIGHT por retrovi ĝian unikan kodan valoron, kiu estas 191:

    =CODE(RIGHT(A2))

    Kiam vi ricevas la kodon de la karaktero, servu la respondan CHAR. funkcio al la ĝenerala formulo supre. Por nia datumaro, la formulo iras jene:

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

    Noto. La SUBSTITUTE-funkcio estas majuskle-distinga , tio signifas, ke ĝi traktas minusklojn kaj majusklojn kiel malsamajn signojn. Bonvolu memori tion se via nedezirata signo estas letero.

    Forigi plurajn signojn de ĉeno

    En unu el la antaŭaj artikoloj, ni rigardis kiel forigi specifajn signojn de ĉenoj en Excel per nesto de pluraj SUBSTITUTO-funkcioj unu en la alian. La sama metodo povas esti uzata por forigi du aŭ pli da nedezirataj signoj unufoje:

    SUBSTITUTE(SUBSTITUTE(SUBSTITUTE( ĉelo , char1 , ""), char2 , ""), char3 , "")

    Ekzemple, por forigi normalajn ekkriajn kaj demandsignojn same kiel la inversajn el tekstĉeno en A2, uzu ĉi tiun formulon:

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

    La samon povas esti farita helpe de la funkcio CHAR, kie 161 estas la signokodo por "¡" kaj 191 estas la signokodo por "¿":

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

    Nestitaj SUBSTITUTE-funkcioj bone funkcias por akceptebla nombro da signoj, sed se vi havas dekojn da signoj por forigi, la formulo fariĝas tro longa kaj malfacile administrebla. La sekva ekzemplo pruvas apli kompakta kaj eleganta solvo.

    Forigu ĉiujn nedeziratajn signojn samtempe

    La solvo funkcias nur en Excel por Microsoft 365

    Kiel vi verŝajne scias, Excel 365 havas specialan funkcion, kiu ebligas al vi krei viajn proprajn funkciojn, inkluzive de tiuj, kiuj kalkulas rekursie. Ĉi tiu nova funkcio nomiĝas LAMBDA, kaj vi povas trovi plenajn detalojn pri ĝi en la supre ligita lernilo. Malsupre, mi ilustros la koncepton per kelkaj praktikaj ekzemploj.

    La kutima LAMBDA-funkcio por forigi nedeziratajn signojn estas jena:

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

    Por povi uzi ĉi tiun funkcion en viaj laborfolioj, vi devas unue nomi ĝin. Por tio, premu Ctrl + F3 por malfermi la Nomo-Manaĝeron , kaj poste difinu Novan Nomon tiamaniere:

    1. En la Nomo. skatolo, enigu la nomon de la funkcio: RemoveChars .
    2. Agordu la amplekson al Laborlibro .
    3. En la Referencas al skatolo, algluu la ĉi-supran formulon.
    4. Laŭvole, enigu la priskribon de la parametroj en la skatolo Komentoj . La parametroj montriĝos kiam vi tajpas formulon en ĉelo.
    5. Alklaku OK por konservi vian novan funkcion.

    Por la detalaj instrukcioj, bonvolu vidi Kiel nomi kutiman LAMBDA-funkcion.

    Iam la funkcio ricevas nomon, vi povas rilati al ĝi kiel ajna denaska formulo.

    El la vidpunkto de la uzanto , la sintakso de nia kutima funkcio estas tiel simpla kielĉi tio:

    RemoveChars(string, signs)

    Kie:

    • String - estas la origina ĉeno, aŭ referenco al la ĉelo/intervalo enhavanta la ĉenon( s).
    • Signoj - signoj por forigi. Povas esti reprezentita per teksta ĉeno aŭ ĉela referenco.

    Por oportuno, ni enigas nedeziratajn signojn en iu ĉelo, ekzemple D2. Por forigi tiujn signojn el A2, la formulo estas:

    =RemoveChars(A2, $D$2)

    Por ke la formulo funkciu ĝuste, bonvolu atenti la jenajn aferojn:

    • En D2 , signoj estas listigitaj sen spacoj, krom se vi volas forigi ankaŭ spacojn.
    • La adreso de la ĉelo enhavanta la specialajn signojn estas ŝlosita per la $-signo ($D$2) por malhelpi la referencon ŝanĝi dum traktado de la formulo al la subaj ĉeloj.

    Kaj poste, ni simple trenas la formulon malsupren kaj havas ĉiujn signojn listigitajn en D2 forigitaj de ĉeloj A2 ĝis A6:

    Por purigi plurajn ĉelojn per ununura formulo, liveru la gamon A2:A6 por la unua argumento:

    =RemoveChars(A2:A6, D2)

    Ĉar la formulo estas enigita nur en la plej supra ĉelo, vi ne devas zorgi pri ŝlosado de la ĉelaj koordinatoj - relativa referenco (D2) funkcias bone ĉi-kaze. Kaj pro subteno por dinamikaj tabeloj, la formulo verŝas aŭtomate en ĉiujn referencajn ĉelojn:

    Forigi antaŭdifinitan signaron

    Por forigi antaŭdifinitan aron de signojn el pluraj ĉeloj, vi povas kreialia LAMBDA kiu vokas la ĉefan funkcion RemoveChars kaj specifigas la nedezirindajn signojn en la 2-a parametro. Ekzemple:

    Por forigi specialajn signojn , ni kreis kutiman funkcion nomitan ForigiSpecialajnChars :

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

    Al forigu ciferojn el tekstaj ĉenoj, ni kreis unu plian funkcion nomitan ForigiNombrojn :

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

    Ambaŭ ĉi-supraj funkcioj estas superfacilaj. uzi kiel ili postulas nur unu argumenton - la originan ĉenon.

    Por forigi specialajn signojn el A2, la formulo estas:

    =RemoveSpecialChars(A2)

    Por forigi nur ciferecajn signojn:

    =RemoveNumbers(A2)

    Kiel funkcias ĉi tiu funkcio:

    Esence, la funkcio RemoveChars cirkulas tra la listo de signoj kaj forigas unu signon samtempe. Antaŭ ĉiu rekursiva voko, la IF-funkcio kontrolas la ceterajn signojn. Se la ĉeno chars ne estas malplena (chars"), la funkcio nomas sin. Tuj kiam la lasta signo estas prilaborita, la formulo resendas ĉeno sian nunan formon kaj eliras.

    Por la detala formulo malkonstruo, bonvolu vidi Recursive LAMBDA por forigi nedeziratajn signojn.

    Forigi specialajn signojn per VBA

    La funkcioj funkcias en ĉiuj versioj de Excel

    Se la funkcio LAMBDA ne disponeblas en via Excel, nenio malhelpas vin de kreado de simila funkcio kun VBA. Uzant-difinitafunkcio (UDF) povas esti skribita en du manieroj.

    Persona funkcio por forigi specialajn signojn rekursivajn :

    Tiu ĉi kodo imitas la logikon de la LAMBDA-funkcio priparolata supre.

    Funkcio RemoveUnwantedChars(str Kiel String , signs As String ) If ( "" signs) Tiam str = Anstataŭigi (str, Left(signs, 1), "" ) signs = Right(signs, Len(signs) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End Function

    Propra funkcio por forigi specialajn signojn nerekursivajn :

    Ĉi tie, ni biciklas tra nedezirataj signoj de 1 ĝis Len(chars) kaj anstataŭigu tiujn trovitajn en la origina ĉeno per nenio. La MID-funkcio tiras nedeziratajn signojn unu post alia kaj transdonas ilin al la Anstataŭi-funkcio.

    Funkcio RemoveUnwantedChars(str As String , chars As String ) Por indekso = 1 Al Len(signs) str = Anstataŭigi(str, Mid(chars, indekso, 1), "" ) Sekva RemoveUnwantedChars = str End Function

    Enigu unu el la supraj kodoj en vian laborlibron kiel klarigite en Kiel enigi VBA-kodon en Excel, kaj via kutima funkcio estas preta por uzo.

    Por ne konfuzi nian novan uzant-difinitan funkcion kun la Lambda-difinita, ni nomis ĝin alimaniere:

    RemoveUnwantedChars(string, chars)

    Supoze, ke la origina ĉeno estas en A2 kaj nebonvenaj signoj en D2, ni povas forigi ilin uzante ĉi tiun formulon:

    = RemoveUnwantedChars(A2, $D$2)

    Propra funkcio kun malmola koditasignoj

    Se vi ne volas zorgi pri liverado de specialaj signoj por ĉiu formulo, vi povas specifi ilin rekte en la kodo:

    Funkcio RemoveSpecialChars(str As String ) As String Dim signs As String Dim indekso As Longaj signoj = "?¿!¡*%#$(){}[]^&/\~+-" Por indekso = 1 Al Len(signoj) str = Anstataŭigi(str, Mid(signoj, indekso, 1) , "" ) Sekva RemoveSpecialChars = str Fina Funkcio

    Bonvolu memori, ke la supra kodo estas por pruvaj celoj. Por praktika uzo, nepre inkluzivu ĉiujn signojn, kiujn vi volas forigi en la sekva linio:

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

    Ĉi tiu kutima funkcio nomiĝas ForigiSpecialChars kaj ĝi postulas nur unu argumento - la origina ĉeno:

    RemoveSpecialChars(string)

    Por forigi specialajn signojn de nia datumaro, la formulo estas:

    =RemoveSpecialChars(A2)

    Forigi nepreseblajn signojn en Excel

    Mikrosofto Excel havas specialan funkcion por forigi nepreseblajn signojn - la funkcio CLEAN. Teknike, ĝi forigas la unuajn 32 signojn en la 7-bita ASCII-aro (kodoj 0 ĝis 31).

    Ekzemple, por forigi nepreseblajn signojn el A2, jen la formulo por uzi :

    =CLEAN(A2)

    Tio forigos nepreseblajn signojn, sed spacoj antaŭ/post teksto kaj inter vortoj restos.

    Al forigu aldonajn spacojn , envolvu la CLEAN-formulon en la funkcio TRIM:

    =TRIM(CLEAN(A2))

    Nun, ĉiuj gvidaj kajpostaj spacoj estas forigitaj, dum interspacoj estas reduktitaj al ununura spacsigno:

    Se vi ŝatus forigi absolute ĉiujn spacojn interne ĉeno, poste aldone anstataŭigu la spaceton (kodnumero 32) per malplena ĉeno:

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

    Kelkaj spacoj aŭ aliaj nevideblaj signoj ankoraŭ restas en via laborfolio? Tio signifas, ke tiuj signoj havas malsamajn valorojn en la Unikoda signaro.

    Ekzemple, la signokodo de nerompebla spaco ( ) estas 160 kaj vi povas purigi ĝin uzante ĉi tiun formulon:

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

    Por forviŝi specifan nepresan signon , vi unue devas trovi ĝian kodvaloron. La detalaj instrukcioj kaj formulekzemploj estas ĉi tie: Kiel forigi specifan ne-presan signon.

    Forigi specialajn signojn kun Ultimate Suite

    Elportas Excel por Microsoft 365, Excel 2019 - 2010.

    En ĉi tiu lasta ekzemplo, mi montru al vi la plej facilan manieron forigi specialajn signojn en Excel. Kun la Ultimate Suite instalita, jen kion vi devas fari:

    1. En la langeto Ablebits Data , en la grupo Teksto , alklaku . Forigi > Forigi signojn .

  • En la panelo de aldonaĵo, elektu la fontan gamon, elektu Forigi signoroj kaj elektu la deziratan opcion el la fallisto ( Simboloj kaj interpunkcioj en ĉi tiuekzemplo).
  • Premu la butonon Forigi .
  • Post momento, vi ricevos perfektan rezulton:

    Se io misfunkcias, ne maltrankviliĝu - sekurkopio de via laborfolio estos aŭtomate kreita ĉar la Sekurkopio ĉi tiu laborfolio estas elektita defaŭlte.

    Ĉu scivolemas provi nian Forigi ilon? Ligo al la taksa versio estas ĝuste sube. Mi dankas vin pro legado kaj esperas vidi vin en nia blogo venontsemajne!

    Haveblaj elŝutoj

    Forigi specialajn signojn - ekzemplojn (.xlsm-dosiero)

    Ultimate Suite - prova versio (.exe dosiero)

    Michael Brown estas diligenta teknologia entuziasmulo kun pasio por simpligi kompleksajn procezojn uzante programarajn ilojn. Kun pli ol jardeko da sperto en la teknologia industrio, li perfektigis siajn kapablojn en Microsoft Excel kaj Outlook, same kiel Google Sheets kaj Docs. La blogo de Mikaelo estas dediĉita al kunhavigi siajn sciojn kaj kompetentecon kun aliaj, provizante facilajn sekvajn konsiletojn kaj lernilojn por plibonigi produktivecon kaj efikecon. Ĉu vi estas sperta profesiulo aŭ komencanto, la blogo de Mikaelo ofertas valorajn komprenojn kaj praktikajn konsilojn por eltiri la plej multajn el ĉi tiuj esencaj programaj iloj.