Inhoudsopgave
In de laatste paar artikelen hebben we verschillende tekstfuncties besproken - functies die worden gebruikt om tekststrings te manipuleren. Vandaag ligt de nadruk op de functie RECHTS, die is ontworpen om een bepaald aantal tekens van de meest rechtse zijde van een tekenreeks terug te geven. Net als andere Excel-tekstfuncties is RECHTS zeer eenvoudig en ongecompliceerd, maar hij heeft een paar ongebruikelijke toepassingen die nuttig kunnen blijken inje werk.
Excel RIGHT functie syntaxis
De functie RECHTS in Excel geeft het opgegeven aantal tekens vanaf het einde van een tekststring.
De syntaxis van de functie RECHTS is als volgt:
RIGHT(text, [num_chars])Waar:
- Tekst (vereist) - de tekststring waaruit u tekens wilt halen.
- Num_chars (facultatief) - het aantal tekens dat moet worden uitgepakt, beginnend bij het meest rechtse teken.
- Als num_chars is weggelaten, wordt 1 laatste teken van de tekenreeks teruggegeven (standaard).
- Als num_chars groter is dan het totale aantal tekens in de string, worden alle tekens geretourneerd.
- Als num_chars een negatief getal is, geeft een juiste formule de foutmelding #VALUE!
Om bijvoorbeeld de laatste 3 tekens uit de tekenreeks in cel A2 te halen, gebruikt u deze formule:
=RIGHT(A2, 3)
Het resultaat zou er ongeveer zo uit kunnen zien:
Belangrijke opmerking! De Excel RIGHT functie retourneert altijd een tekststring Zelfs als de oorspronkelijke waarde een getal is. Om een Right-formule te dwingen een getal uit te voeren, gebruikt u deze in combinatie met de functie VALUE, zoals in dit voorbeeld wordt gedemonstreerd.
Hoe de RECHTS-functie gebruiken in Excel - formulevoorbeelden
In echte werkbladen wordt de Excel RECHTS-functie zelden alleen gebruikt. In de meeste gevallen gebruikt u deze samen met andere Excel-functies als onderdeel van complexere formules.
Hoe krijg ik een substring die na een bepaald teken komt
Als u een substring wilt extraheren die volgt op een specifiek teken, gebruikt u de SEARCH- of FIND-functie om de positie van dat teken te bepalen, trekt u de positie af van de totale stringlengte die de LEN-functie oplevert, en haalt u dat aantal tekens uit de meest rechtse kant van de oorspronkelijke string.
RECHT( string , LEN( string ) - ZOEKEN( karakter , string ))Stel, cel A2 bevat de voor- en achternaam gescheiden door een spatie, en u wilt de achternaam naar een andere cel halen. Neem de algemene formule hierboven en zet A2 in plaats van string en " " (spatie) in het tempo van karakter:
=RIGHT(A2,LEN(A2)-SEARCH(" ",A2))
De formule geeft het volgende resultaat:
Op dezelfde manier kunt u een substring krijgen die volgt op elk ander teken, bijvoorbeeld een komma, puntkomma, koppelteken, enz. Om bijvoorbeeld een substring te extraheren die volgt op een koppelteken, gebruikt u deze formule:
=RIGHT(A2,LEN(A2)-SEARCH("-",A2))
Het resultaat ziet er ongeveer zo uit:
Hoe een substring extraheren na het laatste voorkomen van het scheidingsteken
Bij complexe strings die meerdere keren hetzelfde scheidingsteken bevatten, moet u vaak de tekst rechts van het laatste scheidingsteken ophalen. Om een en ander begrijpelijker te maken, bekijkt u de volgende brongegevens en het gewenste resultaat:
Zoals u in de bovenstaande schermafbeelding kunt zien, bevat kolom A een lijst met fouten. Uw doel is de foutbeschrijving te trekken die na de laatste dubbele punt in elke string komt. Een bijkomende complicatie is dat de oorspronkelijke strings een verschillend aantal scheidingstekens kunnen bevatten, bv. A3 bevat 3 dubbele punten terwijl A5 er slechts één bevat.
De sleutel tot het vinden van een oplossing is het bepalen van de positie van het laatste scheidingsteken in de bronstring (de laatste dubbele punt in dit voorbeeld). Hiervoor moet u een handvol verschillende functies gebruiken:
- Krijg het aantal scheidingstekens in de originele string. Het is een makkelijk deel:
- Eerst berekent u de totale lengte van de string met de functie LEN: LEN(A2)
- Ten tweede berekent u de lengte van de string zonder scheidingstekens met behulp van de functie SUBSTITUTE, die alle dubbele punten vervangt door niets: LEN(SUBSTITUTE(A2,":","")).
- Tenslotte trekt u de lengte van de oorspronkelijke string zonder scheidingstekens af van de totale stringlengte: LEN(A2)-LEN(SUBSTITUTE(A2,":",""))
Om er zeker van te zijn dat de formule goed werkt, kunt u hem in een aparte cel invoeren, en het resultaat zal 2 zijn, het aantal dubbele punten in cel A2.
- Vervang het laatste scheidingsteken door een uniek teken. Om de tekst na het laatste scheidingsteken in de string te extraheren, moeten we dat laatste voorkomen van het scheidingsteken op de een of andere manier "markeren". Laten we daartoe het laatste voorkomen van een dubbele punt vervangen door een teken dat nergens in de oorspronkelijke strings voorkomt, bijvoorbeeld door een pondsteken (#).
Indien u bekend bent met de syntaxis van de Excel SUBSTITUTE-functie, herinnert u zich wellicht dat deze het vierde optionele argument (instance_num) heeft, waarmee alleen een specifiek voorkomen van het opgegeven teken kan worden vervangen. En aangezien wij het aantal scheidingstekens in de tekenreeks reeds hebben berekend, hoeft u slechts de bovenstaande functie op te geven als vierde argument van een andere SUBSTITUTE-functie:
=SUBSTITUTE(A2,":","#",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))
Als u deze formule in een aparte cel zou zetten, zou het deze tekenreeks opleveren: ERROR:432#Connection timed out
- Zoek de positie van het laatste scheidingsteken in de tekenreeks. Afhankelijk van door welk teken u het laatste scheidingsteken hebt vervangen, gebruikt u hoofdletterongevoelig SEARCH of hoofdlettergevoelig FIND om de positie van dat teken in de tekenreeks te bepalen. We hebben de laatste dubbele punt vervangen door het # teken, dus gebruiken we de volgende formule om de positie ervan te bepalen:
=SEARCH("#", SUBSTITUTE(A2,":","#",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))
In dit voorbeeld geeft de formule 10, de positie van # in de vervangen tekenreeks.
- Geef een substring rechts van het laatste scheidingsteken. Nu u de positie van het laatste scheidingsteken in een tekenreeks kent, hoeft u dat getal alleen maar af te trekken van de totale lengte van de tekenreeks, en de functie RIGHT zoveel tekens vanaf het einde van de oorspronkelijke tekenreeks te laten teruggeven:
=RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":","")))))
Zoals blijkt uit onderstaande schermafbeelding werkt de formule perfect:
Als u werkt met een grote dataset waarin verschillende cellen verschillende scheidingstekens kunnen bevatten, kunt u de bovenstaande formule misschien beter insluiten in de IFERROR-functie om mogelijke fouten te voorkomen:
=IFERROR(RIGHT(A2,LEN(A2)-SEARCH("$",SUBSTITUTE(A2,":","$",LEN(A2)-LEN(SUBSTITUTE(A2,":",""))))), A2)
Indien een bepaalde tekenreeks geen enkel voorkomen van het opgegeven scheidingsteken bevat, wordt de oorspronkelijke tekenreeks geretourneerd, zoals in rij 6 in onderstaande schermafbeelding:
Hoe verwijder je de eerste N tekens uit een tekenreeks
Naast het extraheren van een substring aan het einde van een tekenreeks, komt de functie RECHTS in Excel van pas in situaties waarin u een bepaald aantal tekens uit het begin van de tekenreeks wilt verwijderen.
In de in het vorige voorbeeld gebruikte dataset wilt u misschien het woord "ERROR" dat aan het begin van elke string staat verwijderen en alleen het foutnummer en de beschrijving laten staan. Om dat te laten doen, trekt u het aantal te verwijderen tekens af van de totale stringlengte, en geeft u dat getal aan de num_chars argument van de Excel RIGHT functie:
RECHT( string , LEN( string )- aantal_van_tekens_te_verwijderen )In dit voorbeeld verwijderen we de eerste 6 tekens (5 letters en een dubbele punt) uit de tekststring in A2, zodat onze formule als volgt gaat:
=RIGHT(A2, LEN(A2)-6)
Kan de functie RECHTS in Excel een getal opleveren?
Zoals vermeld in het begin van deze tutorial, retourneert de functie RECHTS in Excel altijd een tekststring, zelfs als de oorspronkelijke waarde een getal is. Maar wat als u werkt met een numerieke dataset en u wilt dat de uitvoer ook numeriek is? Een gemakkelijke workaround is het nesten van een Right-formule in de VALUE-functie, die speciaal is ontworpen om een tekenreeks die een getal voorstelt om te zetten in een getal.
Om bijvoorbeeld de laatste 5 tekens (postcode) uit de tekenreeks in A2 te halen en de geëxtraheerde tekens om te zetten in een getal, gebruikt u deze formule:
=WAARDE(RECHTS(A2, 5))
De schermafbeelding hieronder toont het resultaat - let op de rechts uitlijnende getallen in kolom B, in tegenstelling tot de links uitgelijnde tekststrings in kolom A:
Waarom werkt de functie RECHTS niet met datums?
Aangezien de RECHTS-functie van Excel is ontworpen om te werken met tekststrings, terwijl datums in het interne Excel-systeem worden weergegeven door getallen, is een RECHTS-formule niet in staat om een afzonderlijk deel van een datum op te halen, zoals een dag, maand of jaar. Als u dit probeert, krijgt u alleen een paar laatste cijfers van het getal dat een datum vertegenwoordigt.
Stel, je hebt de datum 18-Jan-2017 in cel A1. Als u het jaartal probeert te extraheren met de formule RIGHT(A1,4), zou het resultaat 2753 zijn, wat de laatste 4 cijfers zijn van het getal 42753 dat 18 januari 2017 vertegenwoordigt in het Excel-systeem.
"Dus, hoe haal ik een bepaald deel van een datum op?", zult u zich afvragen. Door een van de volgende functies te gebruiken:
- DAY-functie om een dag te extraheren: =DAY(A1)
- MONTH-functie om een maand te krijgen: =MONTH(A1)
- YEAR-functie om een jaar op te halen: =YEAR(A1)
Het volgende screenshot toont de resultaten:
Als uw data worden weergegeven door tekststrings , wat vaak het geval is wanneer u gegevens uit een externe bron exporteert, verhindert niets u om de functie RECHTS te gebruiken om de laatste paar tekens uit de tekenreeks te halen die een bepaald deel van de datum weergeven:
Excel RIGHT functie werkt niet - redenen en oplossingen
Als een juiste formule in uw werkblad niet goed werkt, komt dat waarschijnlijk door een van de volgende redenen:
- Er is een of meer achterliggende spaties Om snel extra spaties in cellen te verwijderen, gebruikt u de TRIM-functie van Excel of de invoegtoepassing Cell Cleaner.
- De num_chars argument is minder dan nul Natuurlijk zult u nauwelijks met opzet een negatief getal in uw formule willen opnemen, maar als de num_chars argument wordt berekend door een andere Excel-functie of een combinatie van verschillende functies en uw rechtse formule de foutmelding #VALUE! geeft, moet u de geneste functie(s) controleren op fouten.
- De oorspronkelijke waarde is een datum Als u deze handleiding goed hebt gevolgd, weet u al waarom de functie RECHTS niet kan werken met datums. Als iemand het vorige gedeelte heeft overgeslagen, kunt u alle details vinden in Waarom de functie RECHTS in Excel niet werkt met datums.
Dit is hoe u de functie RECHTS in Excel gebruikt. Om de formules die in deze tutorial worden besproken nader te bekijken, bent u van harte welkom om onze voorbeeldwerkmap hieronder te downloaden. Ik dank u voor het lezen en hoop u volgende week op onze blog te zien.
Beschikbare downloads
Excel RIGHT functie - voorbeelden (.xlsx bestand)