Excel RIGHT-funktion med formelexempel

  • Dela Detta
Michael Brown

I de senaste artiklarna har vi diskuterat olika textfunktioner - de som används för att manipulera textsträngar. Idag fokuserar vi på funktionen RIGHT, som är utformad för att returnera ett specificerat antal tecken från den högra sidan av en sträng. Liksom andra Excel Text-funktioner är RIGHT mycket enkel och okomplicerad, men den har ändå ett par oväntade användningsområden som kan vara användbara i följande situationerditt arbete.

    Excel RIGHT-funktionens syntax

    Funktionen RIGHT i Excel returnerar det angivna antalet tecken från slutet av en textsträng.

    Syntaxen för RIGHT-funktionen är följande:

    RIGHT(text, [num_chars])

    Var:

    • Text (obligatoriskt) - den textsträng från vilken du vill extrahera tecken.
    • Num_chars (valfritt) - antalet tecken som ska extraheras, med början från det högra tecknet.
      • Om num_chars utelämnas, returneras 1 sista tecknet i strängen (standard).
      • Om num_chars är större än det totala antalet tecken i strängen, returneras alla tecken.
      • Om num_chars är ett negativt tal, returnerar en rätt formel felet #VALUE!.

    Om du till exempel vill extrahera de tre sista tecknen från strängen i cell A2 använder du den här formeln:

    =RIGHT(A2, 3)

    Resultatet kan se ut ungefär så här:

    Viktigt att notera: Excel-funktionen RIGHT returnerar alltid en textsträng Om du vill tvinga en Right-formel att ge ut ett tal använder du den i kombination med VALUE-funktionen, vilket visas i det här exemplet.

    Hur du använder funktionen RIGHT i Excel - exempel på formler

    I verkliga arbetsblad används Excel-funktionen RIGHT sällan ensam, utan oftast tillsammans med andra Excel-funktioner som en del av mer komplexa formler.

    Hur får man fram en delsträng som kommer efter ett visst tecken?

    Om du vill extrahera en delsträng som följer ett visst tecken, använd antingen SEARCH- eller FIND-funktionen för att bestämma positionen för det tecknet, subtrahera positionen från den totala stränglängden som returneras av LEN-funktionen och dra ut så många tecken från den högra sidan av den ursprungliga strängen.

    RÄTT( sträng , LEN( sträng ) - SEARCH( tecken , sträng ))

    Låt oss säga att cell A2 innehåller för- och efternamn separerade med ett mellanslag, och du vill flytta efternamnet till en annan cell. Ta bara den generiska formeln ovan och sätt A2 i stället för sträng , och " " (mellanslag) i takt med karaktär:

    =RIGHT(A2,LEN(A2)-SEARCH(" ",A2))

    Formeln ger följande resultat:

    På samma sätt kan du få fram en delsträng som följer efter något annat tecken, t.ex. ett kommatecken, semikolon, bindestreck etc. Om du till exempel vill få fram en delsträng som kommer efter ett bindestreck använder du den här formeln:

    =RIGHT(A2,LEN(A2)-SEARCH("-",A2))

    Resultatet kommer att se ut ungefär så här:

    Hur man extraherar en delsträng efter den sista förekomsten av avgränsaren

    När du har att göra med komplexa strängar som innehåller flera förekomster av samma avgränsare kan du ofta behöva hämta texten till höger om den sista förekomsten av avgränsaren. För att göra det lättare att förstå kan du ta en titt på följande källdata och önskat resultat:

    Som du kan se i skärmdumpen ovan innehåller kolumn A en lista med fel. Ditt mål är att ta fram den felbeskrivning som kommer efter det sista kolonet i varje sträng. En ytterligare komplikation är att de ursprungliga strängarna kan innehålla olika antal avgränsare, t.ex. innehåller A3 tre koloner medan A5 bara innehåller ett.

    Nyckeln till att hitta en lösning är att bestämma positionen för den sista avgränsaren i källsträngen (den sista förekomsten av ett kolon i det här exemplet). För att göra detta måste du använda en handfull olika funktioner:

    1. Tar fram antalet avgränsare i den ursprungliga strängen. Det är en enkel del:
      • Först beräknar du strängens totala längd med hjälp av LEN-funktionen: LEN(A2)
      • För det andra beräknar du längden på strängen utan avgränsare genom att använda funktionen SUBSTITUTE som ersätter alla förekomster av ett kolon med ingenting: LEN(SUBSTITUTE(A2,":","",""))
      • Slutligen subtraherar du längden på den ursprungliga strängen utan avgränsare från den totala strängens längd: LEN(A2)-LEN(SUBSTITUTE(A2,":",""))

      För att vara säker på att formeln fungerar korrekt kan du skriva in den i en separat cell, så blir resultatet 2, vilket är antalet kolonier i cell A2.

    2. Ersätt den sista avgränsaren med ett unikt tecken. För att kunna extrahera texten som kommer efter den sista avgränsaren i strängen måste vi "markera" den sista förekomsten av avgränsaren på något sätt. Låt oss ersätta den sista förekomsten av ett kolon med ett tecken som inte förekommer någonstans i de ursprungliga strängarna, till exempel med ett pundtecken (#).

      Om du är bekant med syntaxen för Excel-funktionen SUBSTITUTE kommer du kanske ihåg att den har ett fjärde valfritt argument (instance_num) som gör det möjligt att ersätta endast en specifik förekomst av det angivna tecknet. Eftersom vi redan har beräknat antalet avgränsare i strängen, kan du helt enkelt ange ovanstående funktion i det fjärde argumentet för en annan SUBSTITUTE-funktion:

      =SUBSTITUT(A2,":", "#",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))

      Om du placerar denna formel i en separat cell skulle den ge följande sträng: ERROR:432#Förbindelsen har tagit ut sin tid

    3. Ta reda på positionen för den sista avgränsaren i strängen. Beroende på vilket tecken du ersatte den sista avgränsaren med använder du antingen SEARCH (som inte tar hänsyn till storleken) eller FIND (som tar hänsyn till storleken) för att bestämma positionen för det tecknet i strängen. Vi ersatte det sista kolonet med #-tecknet, så vi använder följande formel för att ta reda på positionen för tecknet:

      =SEARCH("#", SUBSTITUTE(A2,":", "#",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))

      I det här exemplet returnerar formeln 10, vilket är positionen för # i den ersatta strängen.

    4. Återge en delsträng till höger om den sista avgränsaren. Nu när du vet var den sista avgränsaren i en sträng är det enda du behöver göra att subtrahera detta tal från strängens totala längd och få funktionen RIGHT att återge så många tecken från slutet av den ursprungliga strängen:

      =RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))))

    Som framgår av skärmbilden nedan fungerar formeln perfekt:

    Om du arbetar med en stor datamängd där olika celler kan innehålla olika avgränsare kan du vilja inkludera ovanstående formel i IFERROR-funktionen för att förhindra eventuella fel:

    =IFERROR(HÖGER(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))), A2)

    Om en viss sträng inte innehåller en enda förekomst av den angivna avgränsaren returneras den ursprungliga strängen, som i rad 6 i skärmbilden nedan:

    Hur man tar bort de första N tecknen från en sträng

    Förutom att extrahera en delsträng från slutet av en sträng är Excel-funktionen RIGHT praktisk när du vill ta bort ett visst antal tecken från början av strängen.

    I datasetet som användes i föregående exempel kanske du vill ta bort ordet "ERROR" som visas i början av varje sträng och bara lämna kvar felnumret och beskrivningen. För att göra detta subtraherar du antalet tecken som ska tas bort från den totala stränglängden och anger det antalet till num_chars argumentet i Excel RIGHT-funktionen:

    RÄTT( sträng , LEN( sträng )- antal_av_tecken_att_ta_ bort )

    I det här exemplet tar vi bort de första 6 tecknen (5 bokstäver och ett kolon) från textsträngen i A2, så vår formel ser ut på följande sätt:

    =RIGHT(A2, LEN(A2)-6)

    Kan Excel-funktionen RIGHT returnera ett tal?

    Som vi nämnde i början av den här handledningen returnerar funktionen RIGHT i Excel alltid en textsträng även om det ursprungliga värdet är ett tal. Men vad händer om du arbetar med ett numeriskt dataset och vill att utdata också ska vara numeriskt? En enkel lösning är att bädda in en Right-formel i VALUE-funktionen, som är speciellt utformad för att konvertera en sträng som representerar ett tal till ett tal.

    Om du till exempel vill ta ut de sista 5 tecknen (postnummer) från strängen i A2 och omvandla de extraherade tecknen till ett nummer använder du den här formeln:

    =VÄRDE(HÖGER(A2, 5))

    Skärmdumpen nedan visar resultatet - lägg märke till de högerjusterade siffrorna i kolumn B, till skillnad från de vänsterjusterade textsträngarna i kolumn A:

    Varför fungerar inte funktionen RIGHT med datum?

    Eftersom Excel-funktionen RIGHT är utformad för att arbeta med textsträngar, medan datum representeras av siffror i det interna Excelsystemet, kan en Right-formel inte hämta en enskild del av ett datum, t.ex. dag, månad eller år. Om du försöker göra detta får du bara fram de sista siffrorna i siffran som representerar ett datum.

    Om vi antar att du har datumet 18-Jan-2017 i cell A1. Om du försöker extrahera året med formeln RIGHT(A1,4) blir resultatet 2753, vilket är de fyra sista siffrorna i siffran 42753 som representerar 18 januari 2017 i Excel-systemet.

    "Hur hämtar jag en viss del av ett datum?", kanske du frågar mig. Genom att använda en av följande funktioner:

    • DAY-funktionen för att extrahera en dag: =DAY(A1)
    • Funktionen MONTH för att få fram en månad: =MONTH(A1)
    • YEAR-funktionen för att ta fram ett år: =YEAR(A1)

    Följande skärmdump visar resultatet:

    Om din Datum representeras av textsträngar. , vilket ofta är fallet när du exporterar data från en extern källa, finns det inget som hindrar dig från att använda funktionen RIGHT för att ta fram de sista tecknen i strängen som representerar en viss del av datumet:

    Excel RIGHT-funktionen fungerar inte - orsaker och lösningar

    Om en rättformel inte fungerar som den ska i ditt kalkylblad beror det troligen på någon av följande orsaker:

    1. Det finns en eller flera efterföljande mellanslag Om du snabbt vill ta bort extra mellanslag i celler använder du antingen Excel-funktionen TRIM eller tilläggsmodulen Cell Cleaner.
    2. num_chars argumentet är mindre än noll Naturligtvis vill du knappast med flit sätta in ett negativt tal i din formel, men om num_chars argumentet beräknas av en annan Excel-funktion eller en kombination av olika funktioner och din högerformel returnerar felet #VALUE!, se till att du kontrollerar de inbäddade funktionerna för fel.
    3. Det ursprungliga värdet är ett datum Om du har följt den här handledningen noga vet du redan varför funktionen RÄTT inte fungerar med datum. Om någon hoppade över det föregående avsnittet kan du hitta alla detaljer i Varför Excel-funktionen RÄTT inte fungerar med datum.

    Så här använder du funktionen RÄTT i Excel. Om du vill titta närmare på de formler som diskuteras i den här handledningen är du välkommen att ladda ner vår exempelarbetsbok nedan. Tack för att du läste och hoppas att vi ses på vår blogg nästa vecka.

    Tillgängliga nedladdningar

    Excel RIGHT-funktion - exempel (.xlsx-fil)

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.