Indholdsfortegnelse
Lær formler og formelfrie måder at trimme mellemrum, fjerne specielle symboler (selv de første/sidste N-tegn) og de samme tekststrenge før/efter bestemte tegn fra flere celler på én gang.
At fjerne den samme del af teksten fra flere celler på én gang kan være lige så vigtigt og tricky som at tilføje den. Selv hvis du kender nogle af metoderne, vil du helt sikkert finde nye i dagens blogindlæg. Jeg deler masser af funktioner og deres færdige formler, og som altid gemmer jeg den nemmeste - formelfri - til sidst ;)
Formler til Google Sheets til at fjerne tekst fra celler
Jeg starter med standardfunktionerne til Google Sheets, der fjerner tekststrenge og tegn fra cellerne. Der findes ingen universel funktion til dette, så jeg vil give forskellige formler og deres kombinationer for forskellige tilfælde.
Google Sheets: Fjern mellemrum
Der kan nemt komme mellemrum i cellerne efter importen, eller hvis flere brugere redigerer arket på samme tid. Faktisk er ekstra mellemrum så almindelige, at Google Sheets har et særligt Trim-værktøj til at fjerne alle mellemrum.
Du skal blot vælge alle Google Sheets-celler, hvor du vil fjerne mellemrum, og vælge Data> Trimme mellemrum i regnearksmenuen:
Når du klikker på indstillingen, fjernes alle forreste og bageste mellemrum i markeringen helt, mens alle ekstra mellemrum mellem dataene reduceres til ét:
Fjern andre specialtegn fra tekststrenge i Google Sheets
Google Sheets tilbyder desværre ikke et værktøj til at "trimme" andre tegn end mellemrum. Du er nødt til at bruge formler her.
Tip. Eller brug vores værktøj i stedet - Power Tools frigør dit område fra alle de tegn, du angiver med et klik, herunder mellemrum.
Her har jeg anvendt hashtags før lejlighedsnumrene og telefonnumre med bindestreger og parenteser imellem:
Jeg vil bruge formler til at fjerne disse specialtegn.
SUBSTITUTE-funktionen hjælper mig med det. Den bruges normalt til at erstatte et tegn med et andet, men du kan vende det til din fordel og erstatte de uønskede tegn med... ja, ingenting :) Med andre ord, fjern det.
Lad os se, hvilket argument funktionen kræver:
SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])- text_to_search er enten den tekst, der skal behandles, eller en celle, der indeholder denne tekst. Påkrævet.
- search_for er det tegn, som du vil finde og slette.
- erstatte_med - et tegn, som du vil indsætte i stedet for det uønskede symbol. Påkrævet.
- occurrence_number - hvis der er flere forekomster af det tegn, du leder efter, kan du her angive, hvilken der skal erstattes. Det er helt valgfrit, og hvis du udelader dette argument, vil alle forekomster blive erstattet med noget nyt ( erstatte_for ).
Så lad os lege. Jeg skal finde et hashtag ( # ) i A1 og erstatte det med "ingenting", som i regneark er markeret med dobbelte anførselstegn ( "" ). Med alt dette i tankerne kan jeg opstille følgende formel:
=SUBSTITUT(A1, "#",""")
Tip. Hashtagget er også i dobbelte anførselstegn, da det er den måde, du skal nævne tekststrenge på i Google Sheets-formler.
Kopier derefter formlen ned i kolonnen, hvis Google Sheets ikke tilbyder at gøre det automatisk, og du får dine adresser uden hashtags:
Men hvad med de streger og parenteser? Skal du oprette flere formler? Slet ikke! Hvis du indlejrer flere SUBSTITUTE-funktioner i en Google Sheets-formel, fjerner du alle disse tegn fra hver celle:
=SUBSTITUT(SUBSTITUT(SUBSTITUT(SUBSTITUT(SUBSTITUT(A1, "#","""),"(",""),")",")","""),"-",""")
Denne formel fjerner tegn et efter et, og hver SUBSTITUTE, der starter fra midten, bliver det område, der skal kigges på for den næste SUBSTITUTE:
Tip. Desuden kan du pakke dette ind i ArrayFormula og dække hele kolonnen på én gang. I dette tilfælde skal du ændre cellehenvisningen ( A1 ) til dine data i kolonnen ( A1:A7 ) også:
=ArrayFormula(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A7, "#","""),"(",""),")","""),"-","""))
Fjern specifik tekst fra celler i Google Sheets
Selv om du kan bruge den førnævnte SUBSTITUTE-funktion til Google Sheets til at fjerne tekst fra celler, vil jeg også gerne vise en anden funktion - REGEXREPLACE.
Navnet er en forkortelse af 'regular expression replace'. Og jeg vil bruge de regulære udtryk til at søge efter de strenge, der skal fjernes, og erstatte dem med ' intet" ( "" ).
Tip. Hvis du ikke er interesseret i at bruge regulære udtryk, beskriver jeg en meget nemmere måde i slutningen af dette blogindlæg.
Tip. Hvis du leder efter måder at finde og fjerne dubletter i Google Sheets på, kan du besøge dette blogindlæg i stedet. REGEXREPLACE(text, regular_expression, replacement)
Som du kan se, er der tre argumenter til funktionen:
- tekst - er det sted, hvor du leder efter den tekststreng, der skal fjernes. Det kan være selve teksten i dobbelte anførselstegn eller en henvisning til en celle/et område med tekst.
- regular_expression - dit søgemønster, der består af forskellige tegnkombinationer. Du leder efter alle strenge, der passer til dette mønster. Det er med dette argument, at det sjove sker, hvis jeg må sige det.
- udskiftning - en ny ønsket tekststreng.
Lad os antage, at mine celler med data også indeholder landenavnet ( USA ) hvis de er forskellige steder i cellerne:
Hvordan vil REGEXREPLACE hjælpe mig med at fjerne den?
=REGEXREPLACE(A1,"(.*)US(.*)","$1 $2")
Sådan fungerer formlen helt præcist:
- den scanner indholdet af cellen A1
- for match til denne maske: "(.*)US(.*)"
Denne maske fortæller funktionen, at den skal søge efter USA uanset hvor mange andre tegn der måtte gå forud for (.*) eller følge (.*) navnet på landet.
Og hele masken sættes i dobbelte anførselstegn, som funktionen kræver :)
- det sidste argument - "$1 $2" - er det, jeg ønsker at få i stedet. $1 og $2 hver repræsenterer en af disse 2 grupper af tegn - (.*) - fra det foregående argument. Du bør nævne disse grupper i det tredje argument på denne måde, så formlen kan returnere alt, hvad der eventuelt står før og efter USA
Hvad angår den USA selv, jeg nævner det simpelthen ikke i det 3. argument - hvilket betyder, at jeg vil returnere alt fra A1 uden USA .
Tip: Der er en særlig side, som du kan henvise til for at opbygge forskellige regulære udtryk og søge efter tekst i forskellige positioner i celler.
Tip: Hvad angår de resterende kommaer, kan du slippe af med dem med SUBSTITUTE-funktionen, som er beskrevet ovenfor ;) Du kan endda omslutte REGEXREPLACE med SUBSTITUTE og løse det hele med én formel:
=SUBSTITUTE(REGEXREPLACE(A1,"(.*)US(.*)","$1 $2"),",",",","")
Fjern tekst før/efter bestemte tegn i alle markerede celler
Eksempel 1. REGEXREPLACE-funktionen til Google Sheets
Når det drejer sig om at fjerne alt før og efter bestemte tegn, hjælper REGEXREPLACE også. Husk, at funktionen kræver 3 argumenter:
REGEXREPLACE(text, regular_expression, replacement)Og som jeg nævnte ovenfor, da jeg introducerede funktionen, er det den anden, du skal bruge korrekt, så funktionen ved, hvad den skal finde og fjerne.
Hvordan fjerner jeg så adresserne og beholder kun telefonnumre i cellerne?
Her er den formel, jeg vil bruge:
=REGEXREPLACE(A1,".*\n.*(\+.*)","$1")
- Her er det regulære udtryk, som jeg bruger i dette tilfælde: ".*\n.*(\+.*)"
I den første del - .*\n.* - Jeg bruger backslash+n Jeg vil have funktionen til at fjerne alt før og efter dette linjeskift (inklusive det).
Den anden del, der er i parentes (\+.*) siger, at jeg ønsker at bevare plustegnet og alt, hvad der følger efter det, intakt. Jeg sætter denne del i parentes for at gruppere den og huske den til senere.
Tip: Skråstreg bruges før pluset for at gøre det til et tegn, som du leder efter. Uden den ville pluset blot være en del af udtrykket, der står for nogle andre tegn (som f.eks. en stjerne).
- Hvad angår det sidste argument - $1 - får det funktionen til at returnere den eneste gruppe fra det andet argument: plustegnet og alt det, der følger efter (\+.*) .
På samme måde kan du slette alle telefonnumre, men beholde adresserne:
=REGEXREPLACE(A1,"(.*\n).*","$1")
Men denne gang fortæller du funktionen, at den skal gruppere (og returnere) alt før linjeskiftet og fjerne resten:
Eksempel 2. RIGHT+LEN+FIND
Der findes endnu et par Google Sheets-funktioner, som lader dig fjerne teksten før et bestemt tegn, nemlig RIGHT, LEN og FIND.
Bemærk: Disse funktioner hjælper kun, hvis de poster, der skal bevares, er af samme længde, som f.eks. telefonnumre i mit tilfælde. Hvis de ikke er det, skal du bare bruge REGEXREPLACE i stedet eller, endnu bedre, det nemmere værktøj, der er beskrevet til sidst.
Ved at bruge denne trio i en bestemt rækkefølge kan jeg få det samme resultat og fjerne hele teksten før et tegn - et plustegn:
=RIGHT(A1,(LEN(A1)-(FIND("+",A1)-1))))
Lad mig forklare, hvordan denne formel fungerer:
- FIND("+",A1)-1 lokaliserer positionsnummeret for plustegnet i A1 ( 24 ) og trækker 1 fra, så det samlede tal ikke omfatter selve pluset: 23 .
- LEN(A1)-(FIND("+",A1)-1) kontrollerer det samlede antal tegn i A1 ( 40 ) og trækker 23 (talt af FIND) fra: 17 .
- Og derefter returnerer RIGHT 17 tegn fra slutningen (højre) af A1.
Desværre hjælper denne måde ikke meget med at fjerne teksten efter linjeskiftet i mit tilfælde (ryd telefonnumre og behold adresser), fordi adresserne er af forskellig længde.
Det er helt i orden, værktøjet til sidst gør det alligevel bedre ;)
Fjern de første/sidste N tegn fra strenge i Google Sheets
Når du har brug for at fjerne et bestemt antal forskellige tegn fra begyndelsen eller slutningen af en celle, kan REGEXREPLACE og RIGHT/LEFT+LEN også hjælpe dig.
Bemærk: Da jeg allerede har introduceret disse funktioner ovenfor, vil jeg gøre dette punkt kort og give nogle færdige formler. Du kan også bare hoppe til den letteste løsning, der er beskrevet til sidst.
Så hvordan kan jeg slette koderne fra disse telefonnumre? Eller med andre ord fjerne de første 9 tegn fra cellerne:
- Brug REGEXREPLACE. Opret et regulært udtryk, der finder og sletter alt op til det 9. tegn (inklusive det 9. tegn):
=REGEXREPLACE(A1,"(.{9})(.*)","$2")
.
Tip. Hvis du vil fjerne de sidste N tegn, skal du blot bytte om på grupperne i det regulære udtryk:
=REGEXREPLACE(A1,"(.*)(.{9})","$1")
- RIGHT/LEFT+LEN tæller også antallet af tegn, der skal slettes og returnerer den resterende del fra henholdsvis slutningen eller begyndelsen af en celle:
=RIGHT(A1,LEN(A1)-9)
Tip. Hvis du vil fjerne de sidste 9 tegn fra celler, skal du erstatte HØJRE med VENSTRE:
=LEFT(A1,LEN(A1)-9)
- Sidst men ikke mindst er funktionen REPLACE. Du fortæller den, at den skal tage de 9 tegn fra venstre og erstatte dem med ingenting ( "" ):
=REPLACE(A1,1,9,"")
Bemærk: Da REPLACE kræver en startposition for at behandle teksten, kan det ikke bruges, hvis du skal slette N tegn fra slutningen af en celle.
Formelfri måde at fjerne specifik tekst i Google Sheets på - Power Tools add-on
Funktioner og alt er godt, når du har tid til at slå ihjel. Men vidste du, at der findes et særligt værktøj, der omfatter alle de førnævnte måder, og det eneste du skal gøre er at vælge den ønskede radioknap? :) Ingen formler, ingen ekstra kolonner - du kunne ikke ønske dig en bedre hjælper ;D
Du behøver ikke at tage mit ord for det, men du kan bare installere Power Tools og se det med egne øjne:
- Med den første gruppe kan du fjerne flere delstrenge eller enkelte tegn fra en hvilken som helst position i alle de valgte celler på én gang:
Et andet værktøj fra Power Tools fjerner tids- og datoenheder fra tidsstempler. Det hedder Split Date & Time:
Hvad har opdelingsværktøjet at gøre med at fjerne tids- og datoenheder? Hvis du vil fjerne tid fra tidsstempler, skal du vælge Dato da det er en del, som du ønsker at beholde og også at afkrydse Udskift kildedata , ligesom på skærmbilledet ovenfor.
Værktøjet uddrager datoenheden og erstatter hele tidsstemplet med den. Med andre ord fjerner denne tilføjelse til Google Sheets tidsenheden fra tidsstemplet:
Du kan få alle disse og over 30 andre tidsbesparelser til regneark ved at installere tilføjelsen fra Google Store. De første 30 dage er helt gratis og fuldt funktionsdygtige, så du har tid til at beslutte, om det er investeringen værd.
Hvis du har spørgsmål til en del af dette blogindlæg, så ses vi i kommentarfeltet nedenfor!