Innehållsförteckning
I handledningen förklaras Excel-funktionerna REPLACE och SUBSTITUTE med exempel på användningsområden. Se hur du använder REPLACE-funktionen med textsträngar, siffror och datum, och hur du kan bädda in flera REPLACE- eller SUBSTITUTE-funktioner i en formel.
Förra veckan diskuterade vi olika sätt att använda FIND- och SEARCH-funktionerna i dina Excel-arbetsblad. Idag ska vi ta en djupare titt på två andra funktioner för att ersätta text i en cell baserat på dess plats eller ersätta en textsträng med en annan baserat på innehåll. Som du kanske har gissat talar jag om Excel-funktionerna REPLACE och SUBSTITUTE.
Excel REPLACE-funktionen
Med funktionen REPLACE i Excel kan du byta ut ett eller flera tecken i en textsträng mot ett annat tecken eller en uppsättning tecken.
REPLACE(old_text, start_num, num_chars, new_text)Som du ser har Excel-funktionen REPLACE 4 argument, som alla är nödvändiga.
- Gammal_text - originaltexten (eller en referens till en cell med originaltexten) där du vill ersätta vissa tecken.
- Start_nummer - positionen för det första tecknet i old_text som du vill ersätta.
- Num_chars - det antal tecken som du vill ersätta.
- Ny_text - den ersättande texten.
Om du till exempel vill ändra ordet " sol " till " son ", kan du använda följande formel:
=REPLACE("sun", 2, 1, "o")
Och om du placerar det ursprungliga ordet i en cell, till exempel A2, kan du ange motsvarande cellreferens i argumentet old_text:
=REPLACE(A2, 2, 1, "o")
Observera: Om argumentet start_num eller num_chars är negativt eller icke-numeriskt, returnerar en Excel Ersätt-formel felet #VALUE!
Använda Excel REPLACE-funktionen med numeriska värden
Funktionen REPLACE i Excel är utformad för att arbeta med textsträngar. Du kan naturligtvis använda den för att ersätta numeriska tecken som ingår i en textsträng, till exempel:
=REPLACE(A2, 7, 4, "2016")
Observera att vi omsluter "2016" med dubbla citattecken som du brukar göra med textvärden.
På samma sätt kan du ersätta en eller flera siffror i ett nummer. Till exempel:
=REPLACE(A4, 4, 4, 4, "6")
Återigen måste du omsluta ersättningsvärdet inom dubbla citattecken ("6").
Observera: En formel i Excel REPLACE returnerar alltid en textsträng I skärmdumpen ovan ser du att det returnerade textvärdet i B2 är vänsterjusterat och jämför det med det högerjusterade originalnumret i A2. Eftersom det är ett textvärde kan du inte använda det i andra beräkningar om du inte omvandlar det till ett nummer, till exempel genom att multiplicera det med 1 eller genom att använda någon annan metod som beskrivs i Så konverterar du text till nummer.
Använda Excel REPLACE-funktionen med datum
Som du just har sett fungerar REPLACE-funktionen bra med siffror, förutom att den returnerar en textsträng :) Med tanke på att datum lagras som siffror i Excels interna system kan du försöka använda vissa Replace-formler på datum. Resultatet skulle bli ganska pinsamt.
Du har till exempel ett datum i A2, till exempel 1-okt-14, och du vill ändra " okt " till " Nov ". Så du skriver formeln REPLACE(A2, 4, 3, "Nov") som säger åt Excel att ersätta tre tecken i cellerna A2 med början på det fjärde tecknet... och får följande resultat:
Varför det? Eftersom "01-Oct-14" bara är en visuell representation av det underliggande serienumret (41913) som representerar datumet. Så vår Replace-formel ändrar de tre sista siffrorna i ovanstående serienummer till " Nov " och returnerar textsträngen "419Nov".
För att få Excel-funktionen REPLACE att fungera korrekt med datum kan du först konvertera datum till textsträngar med hjälp av TEXT-funktionen eller någon annan teknik som visas i avsnittet Hur man konverterar datum till text i Excel. Alternativt kan du bädda in TEXT-funktionen direkt i argumentet old_text i REPLACE-funktionen:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Kom ihåg att resultatet av formeln ovan är en textsträng Om du behöver datum i stället för textsträngar använder du funktionen DATEVALUE för att omvandla de värden som returneras av Excel-funktionen REPLACE tillbaka till datum:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))
Inbäddade REPLACE-funktioner för att göra flera ersättningar i en cell
Ofta kan du behöva göra mer än en ersättning i samma cell. Du kan naturligtvis göra en ersättning, skriva ut ett mellanresultat i en extra kolumn och sedan använda REPLACE-funktionen igen. Ett bättre och mer professionellt sätt är dock att använda inbäddade REPLACE-funktioner som gör att du kan utföra flera ersättningar med en enda formel. I det här sammanhanget betyder "häckningar" att en funktion placeras inom en annan.
Tänk på följande exempel: Anta att du har en lista med telefonnummer i kolumn A formaterad som "123456789" och att du vill få dem att se ut som telefonnummer genom att lägga till bindestreck. Med andra ord är ditt mål att omvandla "123456789" till "123-456-789".
Det är enkelt att infoga det första bindestrecket: Du skriver en vanlig formel i Excel som ersätter noll tecken med ett bindestreck, dvs. lägger till ett bindestreck i fjärde positionen i en cell:
=REPLACE(A2,4,0,"-")
Resultatet av ovanstående Replace-formel är följande:
Okej, och nu behöver vi infoga ytterligare ett bindestreck i den åttonde positionen. För att göra detta placerar du ovanstående formel i en annan Excel REPLACE-funktion. Mer exakt, du bäddar in den i gammal_text argumentet i den andra funktionen, så att den andra REPLACE-funktionen hanterar det värde som returneras av den första REPLACE-funktionen och inte värdet i cell A2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
Resultatet är att du får telefonnumren i önskad formatering:
På samma sätt kan du använda inbäddade REPLACE-funktioner för att få textsträngar att se ut som datum genom att lägga till ett snedstreck (/) där det är lämpligt:
=(ERSÄTTA(ERSÄTTA(A2,3,0,"/"),6,0,"/"))
Dessutom kan du konvertera textsträngar till riktiga datum genom att omsluta ovanstående REPLACE-formel med funktionen DATEVALUE:
=DATEVALUE(REPLACE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Och naturligtvis är du inte begränsad i antalet funktioner som du kan bädda in i en formel (de moderna versionerna av Excel 2010, 2013 och 2016 tillåter upp till 8192 tecken och upp till 64 bäddade funktioner i en formel).
Du kan till exempel använda tre inbäddade REPLACE-funktioner för att få ett nummer i A2 att se ut som datum och tid:
=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
Ersätta en sträng som förekommer på en annan plats i varje cell
Hittills har vi i alla exemplen haft att göra med värden av liknande karaktär och har gjort ersättningar på samma plats i varje cell. Men i verkligheten är uppgifterna ofta mer komplicerade än så. I dina kalkylblad förekommer de tecken som ska ersättas inte nödvändigtvis på samma plats i varje cell, och därför måste du hitta positionen för det första tecknet Följande exempel visar vad jag talar om.
Anta att du har en lista med e-postadresser i kolumn A. Ett företags namn har ändrats från "ABC" till "BCA", så du måste uppdatera alla kunders e-postadresser i enlighet med detta.
Problemet är att klientnamnen är olika långa, och därför kan du inte ange exakt var företagsnamnet börjar. Med andra ord vet du inte vilket värde du ska ange i argumentet start_num för Excel-funktionen REPLACE. För att ta reda på det använder du Excel-funktionen FIND för att bestämma positionen för det första tecknet i strängen "@abc":
=FIND("@abc",A2)
Ange sedan ovanstående FIND-funktion i argumentet start_num i din REPLACE-formel:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Tips: Vi inkluderar "@" i vår formel för Excel Sök och ersätt för att undvika oavsiktliga ersättningar i namndelen av e-postadresser. Naturligtvis är chansen mycket liten att sådana matchningar inträffar, men du kanske ändå vill vara på den säkra sidan.
Som du ser i följande skärmdump har formeln inga problem med att hitta och ersätta den gamla texten med den nya. Men om den textsträng som ska ersättas inte hittas returnerar formeln felet #VALUE!:
Och vi vill att formeln ska återge den ursprungliga e-postadressen i stället för felet. Så låt oss inkludera vår FIND & REPLACE-formel i IFERROR-funktionen:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
Och denna förbättrade formel fungerar perfekt, eller hur?
Ett annat praktiskt användningsområde för REPLACE-funktionen är att skriva den första bokstaven i en cell med versaler. När du har att göra med en lista med namn, produkter och liknande kan du använda formeln ovan för att ändra den första bokstaven till versaler.
Tips: Om du vill göra bytena i originaldata är det enklare att använda Excel-dialogrutan SÖK OCH UTBYTTA i Excel.
Excel SUBSTITUTE-funktionen
Funktionen SUBSTITUTE i Excel ersätter en eller flera förekomster av ett visst tecken eller en textsträng med ett eller flera angivna tecken.
Syntaxen för Excel-funktionen SUBSTITUTE är följande:
SUBSTITUTE(text, old_text, new_text, [instance_num])De tre första argumenten är obligatoriska och det sista är valfritt.
- Text - originaltexten i vilken du vill ersätta tecken. Kan anges som en teststräng, en cellreferens eller ett resultat av en annan formel.
- Gamla_text - det eller de tecken som du vill ersätta.
- Ny_text - det eller de nya tecken som ska ersätta old_text med.
- Instance_num - den förekomst av old_text som du vill ersätta. Om den utelämnas ändras varje förekomst av den gamla texten till den nya texten.
Alla nedanstående formler ersätter till exempel "1" med "2" i cell A2, men ger olika resultat beroende på vilket nummer du anger i det sista argumentet:
=SUBSTITUT(A2, "1", "2", 1)
- Ersätter den första förekomsten av "1" med "2".
=SUBSTITUT(A2, "1", "2", 2)
- Ersätter den andra förekomsten av "1" med "2".
= SUBSTITUT(A2, "1", "2")
- Ersätter alla förekomster av "1" med "2".
I praktiken används SUBSTITUTE-funktionen också för att ta bort oönskade tecken från celler. För verkliga exempel, se:
- Hur man tar bort tecken eller ord från en sträng
- Hur du raderar oönskade tecken från celler
Observera att SUBSTITUTE-funktionen i Excel är Skiftlägeskänslig Följande formel ersätter till exempel alla fall av stor bokstav "X" med "Y" i cell A2, men den ersätter inte alla fall av liten bokstav "x".
Ersätta flera värden med en enda formel (inbäddad SUBSTITUTE)
Precis som med Excel-funktionen REPLACE kan du bädda in flera SUBSTITUTE-funktioner i en enda formel för att göra flera ersättningar åt gången, dvs. ersätta flera tecken eller delsträngar med en enda formel.
Anta att du har en textsträng som " PR1, ML1, T1 " i cell A2, där "PR" står för "Project" (projekt), "ML" står för "Milestone" (milstolpe) och "T" står för "Task" (uppgift). Du vill ersätta de tre koderna med fullständiga namn. För att uppnå detta kan du skriva tre olika SUBSTITUTE-formler:
=SUBSTITUTE(A2, "PR", "Projekt ")
=SUBSTITUTE(A2, "ML", "Milestone ")
=SUBSTITUTE(A2, "T", "Task ")
Och sedan bädda in dem i varandra:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Projekt "), "ML", "Milstolpe "), "T", "Uppgift ")
Observera att vi har lagt till ett mellanslag i slutet av varje new_text-argument för att förbättra läsbarheten.
Om du vill lära dig andra sätt att ersätta flera värden åt gången kan du se Hur man gör masshittar och ersätter i Excel.
Excel REPLACE vs. Excel SUBSTITUTE
Excel-funktionerna REPLACE och SUBSTITUTE är mycket lika varandra eftersom båda är utformade för att byta ut textsträngar. Skillnaderna mellan de två funktionerna är följande:
- SUBSTITUTE ersätter en eller flera exempel av ett visst tecken eller en textsträng. Om du vet vilken text som ska ersättas kan du alltså använda Excel-funktionen SUBSTITUTE.
- REPLACE ändrar tecken i en angiven position Om du känner till positionen för det eller de tecken som ska ersättas kan du använda Excel-funktionen REPLACE.
- Funktionen SUBSTITUTE i Excel gör det möjligt att lägga till en valfri parameter (instance_num) som anger vilken förekomst i old_text ska ändras till new_text.
Så här använder du funktionerna SUBSTITUTE och REPLACE i Excel. Förhoppningsvis kan dessa exempel vara användbara för att lösa dina uppgifter. Tack för att du läste och vi ses på vår blogg nästa vecka!
Ladda ner övningsboken
Exempel på formler för ersättande och ersättande (fil.xlsx)