Inhoudsopgave
De handleiding geeft uitleg over de functies REPLACE en SUBSTITUTE in Excel, met voorbeelden van gebruik. U ziet hoe u de functie REPLACE kunt gebruiken met tekstreeksen, getallen en datums, en hoe u verschillende functies REPLACE of SUBSTITUTE in één formule kunt nesten.
Vorige week hebben we verschillende manieren besproken om de functies ZOEKEN en ZOEKEN te gebruiken in uw Excel-werkbladen. Vandaag gaan we dieper in op twee andere functies om tekst in een cel te vervangen op basis van de locatie ervan of een tekstreeks te vervangen door een andere op basis van de inhoud. Zoals u misschien al geraden heeft, heb ik het over de Excel functies VERVANGEN en VERVANGEN.
Excel REPLACE functie
Met de functie REPLACE in Excel kunt u een of meer tekens in een tekststring vervangen door een ander teken of een reeks tekens.
REPLACE(old_text, start_num, num_chars, new_text)Zoals u ziet heeft de Excel REPLACE functie 4 argumenten, die alle vereist zijn.
- Oude tekst - de oorspronkelijke tekst (of een verwijzing naar een cel met de oorspronkelijke tekst) waarin u enkele tekens wilt vervangen.
- Start_num - de positie van het eerste teken binnen old_text dat u wilt vervangen.
- Num_chars - het aantal tekens dat u wilt vervangen.
- Nieuwe tekst - de vervangende tekst.
Om bijvoorbeeld het woord " zon " naar " zoon ", kunt u de volgende formule gebruiken:
=REPLACE("sun", 2, 1, "o")
En als u het oorspronkelijke woord in een bepaalde cel zet, bijvoorbeeld A2, kunt u de overeenkomstige celverwijzing in het argument old_text opgeven:
=REPLACE(A2, 2, 1, "o")
Opmerking: Indien het argument start_num of num_chars negatief of niet-numeriek is, geeft een Excel-vervangingsformule de foutmelding #VALUE!
Excel REPLACE-functie gebruiken met numerieke waarden
De functie REPLACE in Excel is ontworpen om te werken met tekststrings. Natuurlijk kunt u deze functie gebruiken om bijvoorbeeld numerieke tekens te vervangen die deel uitmaken van een tekststring:
=REPLACE(A2, 7, 4, "2016")
Merk op dat we "2016" tussen dubbele aanhalingstekens zetten, zoals u gewoonlijk doet met tekstwaarden.
Op dezelfde manier kunt u één of meer cijfers binnen een getal vervangen. Bijvoorbeeld:
=REPLACE(A4, 4, 4,"6")
En nogmaals, u moet de vervangingswaarde tussen dubbele aanhalingstekens zetten ("6").
Opmerking: een Excel REPLACE formule geeft altijd een tekststring In de bovenstaande schermafbeelding zie je de linkse uitlijning van de tekstwaarde in B2, en vergelijk je die met het rechts uitgelijnde oorspronkelijke getal in A2. En omdat het een tekstwaarde is, kun je die niet gebruiken in andere berekeningen, tenzij je hem weer omzet in een getal, bijvoorbeeld door te vermenigvuldigen met 1 of door een andere methode te gebruiken die is beschreven in Hoe zet je tekst om in een getal?
Excel REPLACE-functie gebruiken met datums
Zoals u zojuist hebt gezien, werkt de REPLACE-functie prima met getallen, behalve dat deze een tekststring retourneert :) Aangezien in het interne Excel-systeem datums worden opgeslagen als getallen, kunt u proberen enkele formules voor vervangen op datums te gebruiken. De resultaten zouden nogal gênant zijn.
U hebt bijvoorbeeld een datum in A2, bijvoorbeeld 1-Oct-14, en u wilt " Okt " naar " Nov "U schrijft dus de formule REPLACE(A2, 4, 3, "Nov") die Excel vertelt 3 tekens in cel A2 te vervangen, beginnend met het 4e teken... en u krijgt het volgende resultaat:
Waarom is dat? Omdat "01-Oct-14" slechts een visuele weergave is van het onderliggende serienummer (41913) dat de datum vertegenwoordigt. Dus onze formule Vervangen verandert de laatste 3 cijfers in het bovenstaande serienummer in " Nov " en geeft de tekststring "419Nov" terug.
Om de Excel REPLACE-functie correct te laten werken met datums, kunt u datums eerst omzetten in tekstreeksen met behulp van de TEXT-functie of een andere techniek die wordt beschreven in Hoe datum omzetten in tekst in Excel. U kunt ook de TEXT-functie rechtstreeks opnemen in het argument old_text van de REPLACE-functie:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Vergeet niet dat het resultaat van de bovenstaande formule een tekststring Daarom werkt deze oplossing alleen als u niet van plan bent de gewijzigde datums in verdere berekeningen te gebruiken. Indien u wel datums nodig hebt in plaats van tekststrings, gebruikt u de functie DATEVALUE om de door de functie Excel REPLACE teruggegeven waarden om te zetten in datums:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))
Geneste REPLACE-functies om meerdere vervangingen in een cel uit te voeren
Vaak moet u meer dan één vervanging in dezelfde cel uitvoeren. U zou natuurlijk één vervanging kunnen uitvoeren, een tussenresultaat in een extra kolom zetten, en dan de functie REPLACE opnieuw gebruiken. Een betere en professionelere manier is echter het gebruik van geneste REPLACE-functies In deze context betekent "nesten" het plaatsen van een functie binnen een andere.
Beschouw het volgende voorbeeld: stel dat u een lijst met telefoonnummers hebt in kolom A die is opgemaakt als "123456789" en u wilt ze meer laten lijken op telefoonnummers door koppeltekens toe te voegen. Met andere woorden, uw doel is om "123456789" te veranderen in "123-456-789".
Het invoegen van het eerste streepje is eenvoudig. U schrijft een gebruikelijke Excel-vervang formule die vervangt nul tekens met een koppelteken, d.w.z. voegt een koppelteken toe op de 4e positie in een cel:
=REPLACE(A2,4,0,"-")
Het resultaat van de bovenstaande vervangingsformule is als volgt:
Oké, en nu moeten we nog een streepje invoegen op de 8e positie. Om dit te doen, plaatst u de bovenstaande formule in een andere Excel REPLACE functie. Preciezer gezegd, u plaatst deze in de oude_tekst argument van de andere functie, zodat de tweede REPLACE-functie de door de eerste REPLACE geretourneerde waarde behandelt, en niet de waarde in cel A2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
Als resultaat krijgt u de telefoonnummers in de gewenste opmaak:
Op soortgelijke wijze kunt u geneste REPLACE-functies gebruiken om tekstreeksen op datums te laten lijken door waar nodig een schuine streep (/) toe te voegen:
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Bovendien kunt u tekststrings omzetten in echte datums door de bovenstaande REPLACE-formule te voorzien van de functie DATEVALUE:
=DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
En natuurlijk bent u niet beperkt in het aantal functies dat u binnen één formule kunt nesten (de moderne versies van Excel 2010, 2013 en 2016 staan tot 8192 tekens en tot 64 geneste functies in een formule toe).
U kunt bijvoorbeeld 3 geneste REPLACE-functies gebruiken om een getal in A2 te laten verschijnen als datum en tijd:
=REPLACE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"), 9,0, " "), 12,0, ":")
Een tekenreeks vervangen die in elke cel op een andere plaats staat
Tot nu toe hebben we in alle voorbeelden te maken gehad met waarden van gelijke aard en hebben we vervangingen uitgevoerd op dezelfde plaats in elke cel. Maar taken in de praktijk zijn vaak ingewikkelder dan dat. In uw werkbladen komen de te vervangen tekens niet noodzakelijkerwijs op dezelfde plaats in elke cel voor, en daarom moet u vind de positie van het eerste teken die vervangen moeten worden. Het volgende voorbeeld laat zien wat ik bedoel.
Stel, u hebt een lijst met e-mailadressen in kolom A. En de naam van één bedrijf is veranderd van "ABC" in bijvoorbeeld "BCA". U moet dus de e-mailadressen van alle klanten dienovereenkomstig bijwerken.
Maar het probleem is dat de klantnamen van verschillende lengte zijn, en daarom kunt u niet precies aangeven waar de bedrijfsnaam begint. Met andere woorden, u weet niet welke waarde u moet opgeven in het start_num argument van de Excel REPLACE functie. Om daar achter te komen gebruikt u de Excel FIND functie om de positie van het eerste teken in de string "@abc" te bepalen:
=FIND("@abc",A2)
En geef dan de bovenstaande FIND-functie in het argument start_num van uw REPLACE-formule:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Tip: Wij nemen "@" op in onze Excel-zoek-en-vervang-formule om te voorkomen dat het naamgedeelte van e-mailadressen per ongeluk wordt vervangen. Natuurlijk is de kans zeer klein dat dergelijke overeenkomsten voorkomen, en toch wilt u het zekere voor het onzekere nemen.
Zoals u in het volgende screenshot ziet, heeft de formule geen probleem met het vinden en vervangen van de oude tekst door de nieuwe. Maar als de te vervangen tekststring niet wordt gevonden, geeft de formule de foutmelding #VALUE!
En we willen dat de formule het oorspronkelijke e-mailadres retourneert in plaats van de fout. Dus laten we onze FIND & REPLACE formule insluiten in de IFERROR functie:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
En deze verbeterde formule werkt perfect, nietwaar?
Een andere praktische toepassing van de functie REPLACE is om de eerste letter in een cel een hoofdletter te geven. Wanneer u te maken hebt met een lijst van namen, producten en dergelijke, kunt u de bovenstaande formule gebruiken om de eerste letter in HOOFDLETTERS te veranderen.
Tip: Als u de vervangingen in de oorspronkelijke gegevens wilt aanbrengen, is een eenvoudiger manier om het Excel-dialoogvenster ZOEKEN en VERVANGEN te gebruiken.
Excel SUBSTITUTE functie
De functie SUBSTITUTE in Excel vervangt een of meer exemplaren van een bepaald teken of een bepaalde tekstreeks door een of meer gespecificeerde tekens.
De syntaxis van de Excel SUBSTITUTE functie is als volgt:
SUBSTITUTE(tekst, oude_tekst, nieuwe_tekst, [instance_num])De eerste drie argumenten zijn verplicht en het laatste is facultatief.
- Tekst - de oorspronkelijke tekst waarin u tekens wilt vervangen. Kan worden geleverd als een teststring, een celverwijzing of een resultaat van een andere formule.
- Oude tekst - de tekens die u wilt vervangen.
- Nieuwe tekst - de nieuwe letter(s) om old_text door te vervangen.
- Instance_num - het voorkomen van old_text dat u wilt vervangen. Indien weggelaten, wordt elk voorkomen van de oude tekst veranderd in de nieuwe tekst.
Bijvoorbeeld, alle onderstaande formules vervangen "1" door "2" in cel A2, maar geven verschillende resultaten afhankelijk van welk getal u als laatste argument opgeeft:
=SUBSTITUTE(A2, "1", "2", 1)
- Vervangt het eerste voorkomen van "1" door "2".
=SUBSTITUTE(A2, "1", "2", 2)
- Vervangt het tweede voorkomen van "1" door "2".
=SUBSTITUTE(A2, "1", "2")
- Vervangt alle voorkomens van "1" door "2".
In de praktijk wordt de functie SUBSTITUTE ook gebruikt om ongewenste tekens uit cellen te verwijderen. Zie voor praktijkvoorbeelden:
- Hoe tekens of woorden uit een string verwijderen
- Hoe ongewenste tekens uit cellen verwijderen
Opmerking. De functie SUBSTITUTE in Excel is hoofdlettergevoelig Bijvoorbeeld, de volgende formule vervangt alle hoofdletters "X" door "Y" in cel A2, maar niet alle kleine letters "x".
Meerdere waarden vervangen met een enkele formule (geneste SUBSTITUTE)
Zoals het geval is met de functie REPLACE in Excel, kunt u meerdere SUBSTITUTE-functies in één formule nesten om meerdere substituties tegelijk uit te voeren, d.w.z. meerdere tekens of substrings te vervangen met één enkele formule.
Stel u heeft een tekststring als " PR1, ML1, T1 " in cel A2, waarbij "PR" staat voor "Project", "ML" voor "Mijlpaal" en "T" voor "Taak". Wat u wilt is de drie codes vervangen door volledige namen. Om dit te bereiken kunt u 3 verschillende SUBSTITUTE-formules schrijven:
=SUBSTITUTE(A2,"PR", "Project ")
=SUBSTITUTE(A2, "ML", "Mijlpaal ")
=SUBSTITUTE(A2, "T", "Task ")
En nestel ze dan in elkaar:
=SUBSTITUTE(SUBSTITUTE(A2,"PR","Project "),"ML","Mijlpaal "),"T","Taak ")
Merk op dat we een spatie hebben toegevoegd aan het einde van elk new_text argument voor een betere leesbaarheid.
Voor andere manieren om meerdere waarden tegelijk te vervangen, zie Zoeken en vervangen in Excel.
Excel REPLACE vs. Excel SUBSTITUTE
De functies REPLACE en SUBSTITUTE in Excel lijken sterk op elkaar in die zin dat ze beide zijn ontworpen om tekststrings te verwisselen. De verschillen tussen de twee functies zijn de volgende:
- SUBSTITUTE vervangt één of meer instanties van een bepaald teken of een tekstreeks. Gebruik dus de functie SUBSTITUTE van Excel als u weet welke tekst moet worden vervangen.
- REPLACE verandert tekens in een opgegeven positie Als u dus de positie weet van het (de) te vervangen teken(s), gebruikt u de functie REPLACE van Excel.
- Met de functie SUBSTITUTE in Excel kan een optionele parameter (instance_num) worden toegevoegd die specificeert welke voorval van old_text moet worden veranderd in new_text.
Zo gebruikt u de functies SUBSTITUTE en REPLACE in Excel. Hopelijk zijn deze voorbeelden nuttig bij het oplossen van uw taken. Ik dank u voor het lezen en hoop u volgende week op onze blog te zien!
Download praktijk werkboek
Voorbeelden van REPLACE- en SUBSTITUTE-formules (.xlsx-bestand)