Innehållsförteckning
Lär dig formler och formelfria sätt att trimma vitrymder, ta bort specialsymboler (även de första/sista N-tecknen) och samma textsträngar före/efter vissa tecken från flera celler på en gång.
Att ta bort samma del av texten från flera celler samtidigt kan vara lika viktigt och knepigt som att lägga till den. Även om du känner till några av sätten kommer du definitivt att hitta nya i dagens blogginlägg. Jag delar med mig av många funktioner och deras färdiga formler och som alltid sparar jag den enklaste - formelfria - till sist ;)
Formler för Google Sheets för att ta bort text från celler
Jag ska börja med standardfunktionerna för Google Sheets som tar bort textsträngar och tecken från celler. Det finns ingen universell funktion för detta, så jag kommer att tillhandahålla olika formler och kombinationer för olika fall.
Google Sheets: ta bort vitrymder
Det är lätt att få in mellanslag i cellerna efter importen eller om flera användare redigerar arket samtidigt. Extra mellanslag är faktiskt så vanliga att Google Sheets har ett särskilt Trim-verktyg för att ta bort alla mellanslag.
Välj bara alla Google Sheets-celler där du vill ta bort vitrymder och välj Data> Trimma vitrymder i menyn för kalkylbladet:
När du klickar på alternativet tas alla inledande och avslutande mellanslag i urvalet bort helt och hållet, medan alla extra mellanslag mellan uppgifterna minskas till ett:
Ta bort andra specialtecken från textsträngar i Google Sheets
Tyvärr erbjuder Google Sheets inget verktyg för att "trimma" andra tecken än mellanslag. Du måste använda formler här.
Tips: Du kan också använda vårt verktyg i stället - Power Tools frigör ditt intervall från alla tecken som du anger med ett klick, inklusive vitrymder.
Här har jag använt hashtaggar före lägenhetsnummer och telefonnummer med streck och parenteser emellan:
Jag kommer att använda formler för att ta bort dessa specialtecken.
Funktionen SUBSTITUTE kommer att hjälpa mig med det. Den används normalt för att ersätta ett tecken med ett annat, men du kan vända det till din fördel och ersätta de oönskade tecknen med... ja, ingenting :) Med andra ord, ta bort det.
Låt oss se vilket argument funktionen kräver:
SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])- text_to_search är antingen den text som ska bearbetas eller en cell som innehåller texten. Krävs.
- search_for är det tecken som du vill hitta och radera.
- ersätta_med - ett tecken som du ska infoga i stället för den oönskade symbolen. Krävs.
- occurrence_number (antal förekomster) - Om det finns flera exemplar av det tecken du söker kan du här ange vilket som ska ersättas. Det är helt frivilligt, och om du utelämnar detta argument kommer alla exemplar att ersättas med något nytt ( ersätta_för ).
Så låt oss leka. Jag måste hitta en hashtag ( # ) i A1 och ersätt det med "nothing" som i kalkylblad markeras med dubbla citationstecken ( "" Med allt detta i åtanke kan jag skapa följande formel:
= SUBSTITUT(A1, "#","")
Tips: Hashtaggen är också inom dubbla citattecken eftersom det är så du ska nämna textsträngar i Google Sheets-formler.
Kopiera sedan formeln ner i kolumnen om Google Sheets inte erbjuder detta automatiskt, så får du adresserna utan hashtaggar:
Men hur är det med streck och parenteser? Ska du skapa fler formler? Inte alls! Om du bäddar in flera SUBSTITUTE-funktioner i en Google Sheets-formel tar du bort alla dessa tecken från varje cell:
= SUBSTITUT(SUBSTITUT(SUBSTITUT(SUBSTITUT(SUBSTITUT(A1, "#",""),"(",""),")",""),""),""),"-","")
Denna formel tar bort tecken ett efter ett och varje SUBSTITUTE, med början från mitten, blir det område som ska användas för att hitta nästa SUBSTITUTE:
Tips. Du kan dessutom svepa in detta i ArrayFormula och täcka hela kolumnen på en gång. I det här fallet ändrar du cellreferensen ( A1 ) till dina uppgifter i kolumnen ( A1:A7 ) också:
=ArrayFormula(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A7, "#",""),"(",""),")",""),"-",""))
Ta bort specifik text från celler i Google Sheets
Även om du kan använda den tidigare nämnda SUBSTITUTE-funktionen för Google Sheets för att ta bort text från celler, vill jag visa en annan funktion - REGEXREPLACE.
Namnet är en akronym för "regular expression replace". Jag ska använda de reguljära uttrycken för att söka efter de strängar som ska tas bort och ersätta dem med ' ingenting" ( "" ).
Tips: Om du inte är intresserad av att använda reguljära uttryck beskriver jag ett mycket enklare sätt i slutet av det här blogginlägget.
Tips: Om du letar efter sätt att hitta och ta bort dubbletter i Google Sheets kan du besöka det här blogginlägget i stället. REGEXREPLACE(text, regular_expression, replacement)
Som du kan se finns det tre argument till funktionen:
- text - är den plats där du letar efter den textsträng som ska tas bort. Det kan vara själva texten inom dubbla citattecken eller en referens till en cell/ett område med text.
- reguljära_uttryck - ditt sökmönster som består av olika teckenkombinationer. Du kommer att leta efter alla strängar som matchar detta mönster. Det är med detta argument som allt det roliga händer, om jag får säga så.
- ersättning - en ny önskad textsträng.
Låt oss anta att mina celler med data också innehåller landsnamnet ( USA ) på olika ställen i cellerna:
Hur hjälper REGEXREPLACE mig att ta bort den?
=REGEXREPLACE(A1,"(.*)US(.*)","$1 $2")
Så här fungerar formeln exakt:
- Den skannar innehållet i cellen. A1
- för matchningar med denna mask: "(.*)US(.*)"
Denna mask talar om för funktionen att den ska leta efter USA oavsett hur många andra tecken som föregår (.*) eller följa (.*) Landets namn.
Och hela masken sätts inom dubbla citationstecken enligt funktionens krav :)
- det sista argumentet - "$1 $2" - är vad jag vill få i stället. $1 och $2 var och en representerar en av dessa två grupper av karaktärer - (.*) - från det föregående argumentet. Du bör nämna dessa grupper i det tredje argumentet på detta sätt så att formeln kan återge allt som eventuellt står före och efter USA
När det gäller USA i sig själv, jag nämner det helt enkelt inte i det tredje argumentet - vilket betyder att jag vill returnera allt från A1 utan USA .
Tips: Det finns en särskild sida som du kan referera till för att bygga olika reguljära uttryck och leta efter text i olika positioner av celler.
Tips: När det gäller de återstående kommatecken hjälper SUBSTITUTE-funktionen som beskrivs ovan till att bli av med dem ;) Du kan till och med inkludera REGEXREPLACE med SUBSTITUTE-funktionen och lösa allt med en enda formel:
=SUBSTITUTE(REGEXREPLACE(A1,"(.*)US(.*)","$1 $2"),",",",","")
Ta bort text före/efter vissa tecken i alla markerade celler
Exempel 1. REGEXREPLACE-funktionen för Google Sheets
REGEXREPLACE hjälper också när det gäller att ta bort allt före och efter vissa tecken. Kom ihåg att funktionen kräver tre argument:
REGEXREPLACE(text, regular_expression, replacement)Och som jag nämnde ovan när jag presenterade funktionen är det den andra som du ska använda korrekt så att funktionen vet vad den ska hitta och ta bort.
Så hur tar jag bort adresserna och behåller bara telefonnummer i cellerna?
Här är den formel som jag kommer att använda:
=REGEXREPLACE(A1,".*\n.*(\+.*)","$1")
- Här är det reguljära uttrycket som jag använder i det här fallet: ".*\n.*(\+.*)"
I den första delen - .*\n.* - Jag använder backslash+n Jag vill att funktionen ska ta bort allt före och efter radbrytningen (inklusive den).
Den andra delen som står inom parentes (\+.*) säger att jag vill behålla plustecknet och allt som följer efter det intakt. Jag tar denna del inom parentes för att gruppera den och ha den i åtanke för senare.
Tips: Backslash används före plustecknet för att göra det till ett tecken som du letar efter. Utan det skulle plustecknet bara vara en del av uttrycket som står för några andra tecken (som till exempel en asterisk).
- Det sista argumentet - $1 - gör att funktionen returnerar den enda gruppen från det andra argumentet: plustecknet och allt som följer därefter. (\+.*) .
På samma sätt kan du radera alla telefonnummer men behålla adresserna:
=REGEXREPLACE(A1,"(.*\n).*","$1")
Men den här gången säger du åt funktionen att gruppera (och returnera) allt före radbrytningen och rensa ut resten:
Exempel 2. RIGHT+LEN+FIND
Det finns ytterligare några Google Sheets-funktioner som låter dig ta bort texten före ett visst tecken: RIGHT, LEN och FIND.
Observera: Dessa funktioner hjälper bara om de poster som ska sparas har samma längd, som telefonnummer i mitt fall. Om de inte har samma längd kan du använda REGEXREPLACE i stället eller, ännu bättre, det enklare verktyget som beskrivs i slutet.
Genom att använda denna trio i en viss ordning kan jag få samma resultat och ta bort hela texten före ett tecken - ett plustecken:
=RIGHT(A1,(LEN(A1)-(FIND("+",A1)-1)))
Låt mig förklara hur denna formel fungerar:
- FIND("+",A1)-1 lokaliserar plustecknets positionsnummer i A1 ( 24 ) och subtraherar 1 så att summan inte inkluderar själva pluset: 23 .
- LEN(A1)-(FIND("+",A1)-1) kontrollerar det totala antalet tecken i A1 ( 40 ) och subtraherar 23 (räknat av FIND) från den: 17 .
- Sedan returnerar RIGHT 17 tecken från slutet (höger) av A1.
Tyvärr hjälper inte detta sätt att ta bort texten efter radbrytningen i mitt fall (rensa telefonnummer och behåll adresser), eftersom adresserna är olika långa.
Det är okej, verktyget i slutet gör det här jobbet bättre ändå ;)
Ta bort de första/sista N-tecknen från strängar i Google Sheets
När du behöver ta bort ett visst antal olika tecken från början eller slutet av en cell kan du använda REGEXREPLACE och RIGHT/LEFT+LEN.
Eftersom jag redan har presenterat dessa funktioner ovan kommer jag att hålla denna punkt kort och ge några färdiga formler. Du kan också gärna hoppa till den enklaste lösningen som beskrivs i slutet.
Så hur kan jag radera koderna från dessa telefonnummer? Eller, med andra ord, ta bort de första 9 tecknen från cellerna:
- Använd REGEXREPLACE. Skapa ett reguljärt uttryck som hittar och raderar allt upp till det nionde tecknet (inklusive det nionde tecknet):
=REGEXREPLACE(A1,"(.{9})(.*)","$2")
.
Tips: Om du vill ta bort de sista N tecknen är det bara att byta ut grupperna i det reguljära uttrycket:
=REGEXREPLACE(A1,"(.*)(.{9})","$1")
- RIGHT/LEFT+LEN räknar också antalet tecken för att ta bort och återföra den återstående delen från slutet respektive början av en cell:
=RIGHT(A1,LEN(A1)-9)
Tips: Om du vill ta bort de sista 9 tecknen från cellerna ersätter du RIGHT med LEFT:
= VÄNSTER(A1,LEN(A1)-9)
- Sist men inte minst finns funktionen REPLACE. Du säger åt den att ta de 9 tecknen från vänster och ersätta dem med ingenting ( "" ):
=REPLACE(A1,1,9,"")
Eftersom REPLACE kräver en startposition för att bearbeta texten fungerar det inte om du behöver ta bort N tecken från slutet av en cell.
Formelfritt sätt att ta bort specifik text i Google Sheets - tillägg till Power Tools
Funktioner och allt är bra när du har tid att döda. Men vet du att det finns ett särskilt verktyg som omfattar alla de ovannämnda metoderna och allt du behöver göra är att välja den önskade radioknappen? :) Inga formler, inga extra kolumner - du kan inte önska dig en bättre medhjälpare ;D
Du behöver inte lita på mig, installera Power Tools och se det själv:
- I den första gruppen kan du ta bort flera delsträngar eller enskilda tecken från vilken position som helst i alla markerade celler samtidigt:
Ett annat verktyg från Power Tools som tar bort tids- och datumenheter från tidsstämplar heter Split Date & Time:
Vad har delningsverktyget att göra med att ta bort tids- och datumenheter? För att ta bort tid från tidsstämplar väljer du Datum eftersom det är en del som du vill behålla och som du även vill kryssa av. Byta ut källdata , precis som i skärmbilden ovan.
Verktyget extraherar datumenheten och ersätter hela tidsstämpeln med den. Med andra ord tar det här tillägget för Google Sheets bort tidsenheten från tidsstämpeln:
Du kan få alla dessa och mer än 30 andra tidsbesparingar för kalkylblad genom att installera tillägget från Google Store. De första 30 dagarna är helt gratis och fullt funktionella, så du har tid att bestämma om det är värt en investering.
Om du har några frågor om någon del av det här blogginlägget, så ses vi i kommentarsfältet nedan!