Slik sletter du spesielle / uønskede tegn i Excel

  • Dele Denne
Michael Brown

I denne artikkelen lærer du hvordan du sletter spesifikke tegn fra en tekststreng og fjerner uønskede tegn fra flere celler samtidig.

Når du importerer data til Excel fra et annet sted, en hel masse spesialtegn kan reise til regnearkene dine. Det som er enda mer frustrerende er at noen tegn er usynlige, noe som gir ekstra mellomrom før, etter eller inne i tekststrenger. Denne opplæringen gir løsninger for alle disse problemene, og sparer deg for bryet med å gå gjennom dataene celle for celle og rense uønskede tegn for hånd.

    Fjern spesialtegn fra Excel-celle

    For å slette et spesifikt tegn fra en celle, erstatt det med en tom streng ved å bruke ERSTATT-funksjonen i sin enkleste form:

    ERSTATT( celle, tegn, "")

    For å fjerne et spørsmålstegn fra A2, er formelen i B2 for eksempel:

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

    For å fjerne en tegn som ikke finnes på tastaturet ditt, kan du kopiere/lime det inn i formelen fra den opprinnelige cellen.

    Slik kan du for eksempel bli kvitt et omvendt spørsmålstegn:

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

    Men hvis et uønsket tegn er usynlig eller ikke kopierer riktig, hvordan legger du det inn i formelen? Bare finn kodenummeret ved å bruke KODE-funksjonen.

    I vårt tilfelle kommer det uønskede tegnet ("¿") sist i celle A2, så vi bruker en kombinasjonav funksjonene CODE og RIGHT for å hente den unike kodeverdien, som er 191:

    =CODE(RIGHT(A2))

    Når du har fått tegnets kode, server den tilsvarende CHAR funksjon til den generiske formelen ovenfor. For datasettet vårt går formelen som følger:

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

    Merk. ERSTATT-funksjonen er skiftende bokstaver , noe som betyr at den behandler små og store bokstaver som forskjellige tegn. Husk det hvis den uønskede karakteren din er en bokstav.

    Slett flere tegn fra streng

    I en av de forrige artiklene så vi på hvordan du fjerner spesifikke tegn fra strenger i Excel ved å neste flere SUBSTITUTE-funksjoner inn i hverandre. Den samme tilnærmingen kan brukes til å eliminere to eller flere uønskede tegn på én gang:

    ERSTATT(ERSTILT( celle , tegn1 , ""), tegn2 , ""), char3 , "")

    For å fjerne normale utrops- og spørsmålstegn så vel som de inverterte fra en tekststreng i A2, bruk for eksempel denne formelen:

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

    Det samme kan gjøres ved hjelp av CHAR-funksjonen, der 161 er tegnkoden for "¡" og 191 er tegnkoden for "¿":

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

    Nestede ERSTATTNING-funksjoner fungerer fint for et rimelig antall tegn, men hvis du har dusinvis av tegn å fjerne, blir formelen for lang og vanskelig å administrere. Det neste eksemplet viser enmer kompakt og elegant løsning.

    Fjern alle uønskede tegn på en gang

    Løsningen fungerer kun i Excel for Microsoft 365

    Som du sikkert vet, Excel 365 har en spesiell funksjon som lar deg lage dine egne funksjoner, inkludert de som beregner rekursivt. Denne nye funksjonen heter LAMBDA, og du kan finne alle detaljer om den i opplæringen ovenfor. Nedenfor skal jeg illustrere konseptet med et par praktiske eksempler.

    En tilpasset LAMBDA-funksjon for å fjerne uønskede tegn er som følger:

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

    For å kunne bruke denne funksjonen i regnearkene dine, må du navngi den først. For dette, trykk Ctrl + F3 for å åpne Navnebehandling , og definer deretter et Nytt navn på denne måten:

    1. I Navn -boksen, skriv inn funksjonens navn: RemoveChars .
    2. Sett omfanget til Arbeidsbok .
    3. I Refererer til -boksen, lim inn formelen ovenfor.
    4. Valgfritt, skriv inn beskrivelsen av parameterne i Kommentarer -boksen. Parametrene vil vises når du skriver inn en formel i en celle.
    5. Klikk OK for å lagre den nye funksjonen.

    For detaljerte instruksjoner, se Hvordan navngi en tilpasset LAMBDA-funksjon.

    Når funksjonen har fått et navn, kan du referere til den som en hvilken som helst naturlig formel.

    Fra brukerens synspunkt , er syntaksen til vår egendefinerte funksjon så enkel somdette:

    RemoveChars(string, chars)

    Hvor:

    • String - er den opprinnelige strengen, eller en referanse til cellen/området som inneholder strengen( s).
    • Tegn - tegn som skal slettes. Kan representeres av en tekststreng eller en cellereferanse.

    For enkelhets skyld legger vi inn uønskede tegn i en celle, for eksempel D2. For å fjerne disse tegnene fra A2 er formelen:

    =RemoveChars(A2, $D$2)

    For at formelen skal fungere riktig, vær oppmerksom på følgende ting:

    • I D2 , er tegn oppført uten mellomrom, med mindre du ønsker å eliminere mellomrom også.
    • Adressen til cellen som inneholder spesialtegnene er låst med $-tegnet ($D$2) for å forhindre at referansen endres når du håndterer formel til cellene nedenfor.

    Og så drar vi ganske enkelt formelen ned og får alle tegnene som er oppført i D2 slettet fra cellene A2 til A6:

    For å rense flere celler med en enkelt formel, oppgi området A2:A6 for det første argumentet:

    =RemoveChars(A2:A6, D2)

    Siden formelen bare skrives inn i den øverste cellen, du trenger ikke bekymre deg for å låse cellekoordinatene - en relativ referanse (D2) fungerer fint i dette tilfellet. Og på grunn av støtte for dynamiske matriser, søles formelen automatisk inn i alle de refererte cellene:

    Fjerne et forhåndsdefinert tegnsett

    For å slette et forhåndsdefinert sett med tegn fra flere celler, kan du lageen annen LAMBDA som kaller hovedfunksjonen RemoveChars og spesifiserer de uønskede tegnene i den andre parameteren. For eksempel:

    For å slette spesialtegn , har vi laget en egendefinert funksjon kalt RemoveSpecialChars :

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

    To fjern tall fra tekststrenger, vi har laget en funksjon til som heter RemoveNumbers :

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

    Begge funksjonene ovenfor er superenkle å bruke da de bare krever ett argument - den opprinnelige strengen.

    For å eliminere spesialtegn fra A2 er formelen:

    =RemoveSpecialChars(A2)

    For å slette bare numeriske tegn:

    =RemoveNumbers(A2)

    Slik fungerer denne funksjonen:

    I hovedsak går RemoveChars -funksjonen gjennom listen over tegn og fjerner ett tegn om gangen. Før hvert rekursivt anrop kontrollerer HVIS-funksjonen de gjenværende tegnene. Hvis chars -strengen ikke er tom (chars"), kaller funksjonen opp seg selv. Så snart det siste tegnet er behandlet, returnerer formelen streng dens nåværende form og avsluttes.

    For detaljert formelinndeling, se Rekursiv LAMBDA for å fjerne uønskede tegn.

    Fjern spesialtegn med VBA

    Funksjonene fungerer i alle versjoner av Excel

    Hvis LAMBDA-funksjonen ikke er tilgjengelig i Excel, er det ingenting som hindrer deg fra å lage en lignende funksjon med VBA. En brukerdefinertfunksjon (UDF) kan skrives på to måter.

    Egendefinert funksjon for å slette spesialtegn rekursiv :

    Denne koden emulerer logikken til LAMBDA-funksjonen diskutert ovenfor.

    Funksjon 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-funksjon

    Egendefinert funksjon for å fjerne spesialtegn ikke-rekursive :

    Her går vi gjennom uønskede tegn fra 1 til Len(tegn) og erstatt de som finnes i den originale strengen med ingenting. MID-funksjonen trekker uønskede tegn én etter én og sender dem til Erstatt-funksjonen.

    Funksjon RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, indeks, 1), "" ) Neste RemoveUnwantedChars = str Sluttfunksjon

    Sett inn en av kodene ovenfor i arbeidsboken din som forklart i Hvordan sette inn VBA-kode i Excel, og din egendefinerte funksjon er klar til bruk.

    For ikke å forveksle vår nye brukerdefinerte funksjon med den Lambda-definerte, har vi gitt den et annet navn:

    RemoveUnwantedChars(string, chars)

    Forutsatt at den originale strengen er i A2 og uvelkomne tegn i D2, vi kan bli kvitt dem ved å bruke denne formelen:

    = RemoveUnwantedChars(A2, $D$2)

    Egendefinert funksjon med hardkodettegn

    Hvis du ikke vil bry deg om å oppgi spesialtegn for hver formel, kan du spesifisere dem direkte i koden:

    Funksjon RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Lange tegn = "?¿!¡*%#$(){}[]^&/\~+-" For indeks = 1 Til Len(tegn) str = Erstatt(str, Mid(tegn, indeks, 1) , "") Neste RemoveSpecialChars = str Sluttfunksjon

    Vennligst husk at koden ovenfor er for demonstrasjonsformål. For praktisk bruk, sørg for å inkludere alle tegnene du vil slette i følgende linje:

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

    Denne egendefinerte funksjonen heter RemoveSpecialChars og den krever bare ett argument - den opprinnelige strengen:

    RemoveSpecialChars(string)

    For å fjerne spesialtegn fra datasettet vårt, er formelen:

    =RemoveSpecialChars(A2)

    Fjern tegn som ikke kan skrives ut i Excel

    Microsoft Excel har en spesiell funksjon for å slette tegn som ikke skrives ut - RENGJØR-funksjonen. Teknisk sett fjerner den de første 32 tegnene i 7-bits ASCII-settet (kodene 0 til 31).

    For eksempel, for å slette ikke-utskrivbare tegn fra A2, her er formelen som skal brukes :

    =CLEAN(A2)

    Dette vil eliminere tegn som ikke skrives ut, men mellomrom før/etter tekst og mellom ord forblir.

    Til bli kvitt ekstra mellomrom , pakk CLEAN-formelen inn i TRIM-funksjonen:

    =TRIM(CLEAN(A2))

    Nå, alle ledende ogetterfølgende mellomrom fjernes, mens mellomrom reduseres til ett enkelt mellomrom:

    Hvis du vil slette absolutt alle mellomrom inne i en streng, og bytt i tillegg ut mellomromstegnet (kodenummer 32) med en tom streng:

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

    Noen mellomrom eller andre usynlige tegn forblir fortsatt i arbeidsarket ditt? Det betyr at disse tegnene har forskjellige verdier i Unicode-tegnsettet.

    For eksempel er tegnkoden til et ikke-brytende mellomrom ( ) 160, og du kan slette det ved å bruke denne formelen:

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

    For å slette et spesifikt tegn som ikke skrives ut , må du først finne kodeverdien. De detaljerte instruksjonene og formeleksemplene er her: Slik fjerner du et spesifikt tegn som ikke skrives ut.

    Slett spesialtegn med Ultimate Suite

    Støtter Excel for Microsoft 365, Excel 2019 - 2010

    I dette siste eksemplet, la meg vise deg den enkleste måten å fjerne spesialtegn i Excel. Med Ultimate Suite installert, er dette hva du må gjøre:

    1. I kategorien Ablebits Data , i Tekst -gruppen, klikker du Fjern > Fjern tegn .

  • Velg kildeområdet i tilleggets rute, velg Fjern tegnsett og velg ønsket alternativ fra rullegardinlisten ( Symboler og skilletegn i denneeksempel).
  • Trykk Fjern -knappen.
  • Om et øyeblikk vil du få et perfekt resultat:

    Hvis noe går galt, ikke bekymre deg - en sikkerhetskopi av regnearket ditt opprettes automatisk ettersom boksen Sikkerhetskopier dette regnearket er valgt som standard.

    Lurer du på å prøve fjernverktøyet vårt? En lenke til evalueringsversjonen er rett nedenfor. Jeg takker for at du leser og håper å se deg på bloggen vår neste uke!

    Tilgjengelige nedlastinger

    Slett spesialtegn - eksempler (.xlsm-fil)

    Ultimate Suite - prøveversjon versjon (.exe-fil)

    Michael Brown er en dedikert teknologientusiast med en lidenskap for å forenkle komplekse prosesser ved hjelp av programvareverktøy. Med mer enn ti års erfaring i teknologibransjen, har han forbedret ferdighetene sine i Microsoft Excel og Outlook, samt Google Sheets og Docs. Michaels blogg er dedikert til å dele sin kunnskap og ekspertise med andre, og gir enkle å følge tips og veiledninger for å forbedre produktivitet og effektivitet. Enten du er en erfaren profesjonell eller nybegynner, tilbyr Michaels blogg verdifull innsikt og praktiske råd for å få mest mulig ut av disse viktige programvareverktøyene.