Innehållsförteckning
När du arbetar med ostrukturerade textdata i dina kalkylblad måste du ofta analysera dem för att hämta relevant information. I den här artikeln får du lära dig några enkla sätt att ta bort valfritt antal tecken från vänster eller höger sida av en textsträng.
Hur du tar bort tecken från vänster i Excel
Att ta bort de första tecknen från en sträng är en av de vanligaste uppgifterna i Excel, och det kan göras med tre olika formler.
Ta bort det första tecknet i Excel
Om du vill ta bort det första tecknet i en sträng kan du använda antingen funktionen REPLACE eller en kombination av funktionerna RIGHT och LEN.
ERSÄTT( sträng , 1, 1, "")Här tar vi helt enkelt ett tecken från den första positionen och ersätter det med en tom sträng ("").
RÄTT( sträng , LEN( sträng ) - 1)I den här formeln använder vi LEN-funktionen för att beräkna strängens totala längd och subtrahera ett tecken från den. Skillnaden serveras till RIGHT, så den extraherar så många tecken från strängens slut.
Om du till exempel vill ta bort det första tecknet från cell A2, ser formlerna ut på följande sätt:
=REPLACE(A2, 1, 1, "")
=RIGHT(A2, LEN(A2) - 1)
Ta bort tecken från vänster
Om du vill ta bort ledande tecken från vänster sida av en sträng använder du också funktionerna REPLACE eller RIGHT och LEN, men du anger hur många tecken du vill ta bort varje gång:
ERSÄTT( sträng , 1, num_chars , "")Eller
RÄTT( sträng , LEN( sträng ) - num_chars )För att till exempel ta bort de två första tecknen från strängen i A2 är formlerna:
=REPLACE(A2, 1, 2, "")
=RIGHT(A2, LEN(A2) - 2)
För att ta bort de tre första tecken , har formlerna denna form:
=REPLACE(A2, 1, 3, "")
=RIGHT(A2, LEN(A2) - 3)
Skärmdumpen nedan visar REPLACE-formeln i praktiken. Med RIGHT LEN skulle resultatet bli exakt detsamma.
Anpassad funktion för att radera de första n tecknen
Om du inte har något emot att använda VBA i dina kalkylblad kan du skapa en egen användardefinierad funktion för att ta bort tecken från början av en sträng, med namnet RemoveFirstChars Funktionens kod är så här enkel:
Funktion RemoveFirstChars(str As String , num_chars As Long ) RemoveFirstChars = Right(str, Len(str) - num_chars) SlutfunktionNär koden har lagts in i arbetsboken (detaljerade instruktioner finns här) kan du ta bort de första n tecknen från en given cell med hjälp av den här kompakta och intuitiva formeln:
RemoveFirstChars(sträng, num_chars)Om du till exempel vill ta bort första tecken från en sträng i A2, är formeln i B2:
=RemoveFirstChars(A2, 1)
För att avlägsna de två första tecken från A3 är formeln i B3:
=RemoveFirstChars(A4, 2)
Ta bort de tre första tecken från A4, är formeln i B4:
=RemoveFirstChars(A4, 3)
Mer om Användning av anpassade funktioner i Excel.
Hur man tar bort tecken från höger
För att ta bort tecken från den högra sidan av en sträng kan du också använda inhemska funktioner eller skapa en egen funktion.
Ta bort det sista tecknet i Excel
För att ta bort det sista tecknet i en cell är den generiska formeln:
VÄNSTER( sträng , LEN( sträng ) - 1)I den här formeln subtraherar du 1 från strängens totala längd och skickar skillnaden till LEFT-funktionen så att den extraherar så många tecken från strängens början.
Om du till exempel vill ta bort det sista tecknet från cell A2 är formeln i B2 följande:
= VÄNSTER(A2, LEN(A2) - 1)
Ta bort tecken från höger
För att ta bort ett visst antal tecken från slutet av en cell är den generiska formeln:
VÄNSTER( sträng , LEN( sträng ) - num_chars )Logiken är densamma som i formeln ovan, och nedan finns ett par exempel.
För att ta bort de 3 sista tecknen , använd 3 för num_chars :
= VÄNSTER(A2, LEN(A2) - 3)
Om du vill radera de 5 sista tecknen , leverera 5 för num_chars :
= VÄNSTER(A2, LEN(A2) - 5)
Anpassad funktion för att ta bort de sista n tecknen i Excel
Om du vill ha en egen funktion för att ta bort ett valfritt antal tecken från höger kan du lägga till den här VBA-koden i din arbetsbok:
Funktion RemoveLastChars(str As String , num_chars As Long ) RemoveLastChars = Left(str, Len(str) - num_chars) SlutfunktionFunktionen heter RemoveLastChars och dess syntax behöver knappast förklaras:
RemoveLastChars(sträng, num_chars)För att ge det ett test på fältet, låt oss göra oss av med sista tecknet i A2:
=RemoveLastChars(A2, 1)
Dessutom tar vi bort de två sista tecknen från den högra sidan av strängen i A3:
=RemoveLastChars(A3, 2)
Om du vill radera de 3 sista tecknen från cell A4 är formeln:
=RemoveLastChars(A4, 3)
Som du kan se i skärmdumpen nedan fungerar vår anpassade funktion utmärkt!
Så här tar du bort tecken från höger och vänster samtidigt
Om du behöver radera tecken på båda sidor av en sträng kan du antingen köra båda ovanstående formlerna i följd eller optimera jobbet med hjälp av MID-funktionen.
MID( sträng , vänster _ chars + 1, LEN( sträng ) - ( vänster _ chars + höger _ chars )Var:
- chars_left - antalet tecken som ska tas bort från vänster.
- chars_right - antalet tecken som ska tas bort från höger.
Anta att du vill extrahera användarnamnet från en sträng som mailto:[email protected] För detta måste en del av texten tas bort från början ( mailto: - 7 tecken) och från slutet ( @gmail.com - 11 tecken).
Använd ovanstående siffror i formeln:
=MID(A2, 7+1, LEN(A2) - (7+10))
...och resultatet kommer inte att låta dig vänta:
För att förstå vad som egentligen händer här, ska vi minnas syntaxen för MID-funktionen, som används för att dra en delsträng av en viss storlek från mitten av den ursprungliga strängen:
MID(text, start_num, num_chars)text argumentet väcker inga frågor - det är källsträngen (A2 i vårt fall).
För att få fram positionen för det första tecknet som ska extraheras ( start_nummer ), lägger du till 1 till antalet tecken som ska tas bort från vänster (7+1).
För att avgöra hur många tecken som ska returneras ( num_chars ), beräknar du summan av de borttagna tecknen (7 + 11) och subtraherar summan från längden på hela strängen: LEN(A2) - (7+10)).
Få resultatet som nummer
Oavsett vilken av ovanstående formler du använder är resultatet alltid text, även om det returnerade värdet endast innehåller siffror. Om du vill returnera resultatet som ett tal Om du vill använda en funktion för att beräkna resultatet, kan du antingen svepa in kärnformeln i VALUE-funktionen eller utföra en matematisk operation som inte påverkar resultatet, t.ex. multiplicera med 1 eller lägga till 0. Den här tekniken är särskilt användbar när du vill beräkna resultaten ytterligare.
Anta att du har tagit bort det första tecknet från cellerna A2:A6 och vill summera de resulterande värdena. Förvånansvärt nog ger en trivial SUM-formel noll. Varför? Självklart för att du adderar strängar, inte siffror. Utför en av nedanstående operationer och problemet är löst!
=VÄRDE(REPLACE(A2, 1, 1, ""))
=RIGHT(A2, LEN(A2) - 1) * 1
=RemoveFirstChars(A2, 1) + 0
Ta bort första eller sista tecknet med Flash Fill
I Excel 2013 och senare versioner finns det ytterligare ett enkelt sätt att ta bort det första och sista tecknet i Excel - funktionen Flash Fill.
- Skriv det önskade resultatet i en cell bredvid den första cellen med originaldata, utelämna det första eller sista tecknet från den ursprungliga strängen och tryck på Enter .
- Börja skriva in det förväntade värdet i nästa cell. Om Excel känner av mönstret i de data du skriver in kommer det att följa samma mönster i resten av cellerna och visa en förhandsgranskning av dina data utan det första/sista tecknet.
- Tryck bara på Enter för att godkänna förhandsgranskningen.
Ta bort tecken efter position med Ultimate Suite
Traditionellt sett kan användarna av vår Ultimate Suite hantera uppgiften med några få klick utan att behöva komma ihåg en handfull olika formler.
Så här gör du för att ta bort de första eller sista n tecknen i en sträng:
- På den Uppgifter om Ablebits på fliken Text grupp, klicka på Ta bort > Ta bort efter position .
För att till exempel ta bort det första tecknet konfigurerar vi följande alternativ:
Så här tar du bort en delsträng från vänster eller höger i Excel. Tack för att du läste och vi ses på vår blogg nästa vecka!
Tillgängliga nedladdningar
Ta bort första eller sista tecken - exempel (.xlsm-fil)
Ultimate Suite - testversion (.exe-fil)