Innholdsfortegnelse
Opplæringen forklarer Excel REPLACE- og ERSTATT-funksjonene med eksempler på bruksområder. Se hvordan du bruker REPLACE-funksjonen med tekststrenger, tall og datoer, og hvordan du nester flere REPLACE- eller ERSTATT-funksjoner innenfor én formel.
Siste uke diskuterte vi ulike måter å bruke FINN- og SØK-funksjonene innenfor Excel-regnearkene dine. I dag skal vi se nærmere på to andre funksjoner for å erstatte tekst i en celle basert på plasseringen eller erstatte en tekststreng med en annen basert på innhold. Som du kanskje har gjettet, snakker jeg om funksjonene Excel REPLACE og SUBSTITUTE.
Excel REPLACE-funksjonen
REPLACE-funksjonen i Excel lar deg bytte en eller flere tegn i en tekststreng med et annet tegn eller et sett med tegn.
REPLACE(gammel_tekst, startnummer, antall_tegn, ny_tekst)Som du ser, har Excel REPLACE-funksjonen 4 argumenter, som alle er påkrevd.
- Gammel_tekst - den opprinnelige teksten (eller en referanse til en celle med den opprinnelige teksten) der du vil erstatte noen tegn.
- Startnummer - plasseringen av det første tegnet i gammel_tekst som du vil erstatte.
- Antall_tegn - antall tegn du vil erstatte.
- Ny_tekst - erstatningsteksten.
For å endre ordet " sol " til " sønn " kan du for eksempel bruke følgendeformel:
=REPLACE("sun", 2, 1, "o")
Og hvis du legger det opprinnelige ordet i en celle, for eksempel A2, kan du oppgi den tilsvarende cellereferansen i old_text-argumentet:
=REPLACE(A2, 2, 1, "o")
Merk. Hvis argumentet start_num eller num_chars er negativt eller ikke-numerisk, returnerer en Excel Replace-formel #VALUE! feil.
Bruke Excel REPLACE-funksjonen med numeriske verdier
REPLACE-funksjonen i Excel er laget for å fungere med tekststrenger. Selvfølgelig kan du bruke den til å erstatte numeriske tegn som er en del av en tekststreng, for eksempel:
=REPLACE(A2, 7, 4, "2016")
Merk at vi vedlegger "2016 " i doble anførselstegn som du vanligvis gjør med tekstverdier.
På lignende måte kan du erstatte ett eller flere sifre i et tall. For eksempel:
=REPLACE(A4, 4, 4,"6")
Og igjen må du sette erstatningsverdien i doble anførselstegn ("6").
Merk. En Excel REPLACE-formel returnerer alltid en tekststreng , ikke et tall. I skjermbildet ovenfor, legg merke til venstrejusteringen av den returnerte tekstverdien i B2, og sammenlign den med det høyrejusterte originalnummeret i A2. Og fordi det er en tekstverdi, vil du ikke kunne bruke den i andre beregninger med mindre du konverterer den tilbake til tall, for eksempel ved å multiplisere med 1 eller ved å bruke en annen metode beskrevet i Hvordan konvertere tekst til tall.
Bruke Excel REPLACE-funksjonen med datoer
Som du nettopp har sett, fungerer REPLACE-funksjonen fint medtall, bortsett fra at det returnerer en tekststreng :) Husk at i det interne Excel-systemet lagres datoer som tall, kan du prøve å bruke noen Erstatt-formler på datoer. Resultatene ville være ganske pinlige.
Du har for eksempel en dato i A2, si 1-14-okt., og du vil endre " okt " til " nov. ". Så du skriver formelen REPLACE(A2, 4, 3, "Nov") som forteller Excel å erstatte 3 tegn i cellene A2 som begynner med det fjerde tegnet... og fikk følgende resultat:
Hvorfor det? Fordi "01-okt-14" bare er en visuell representasjon av det underliggende serienummeret (41913) som representerer datoen. Så vår Erstatt-formel endrer de tre siste sifrene i serienummeret ovenfor til " Nov " og returnerer tekststrengen "419Nov".
For å få Excel REPLACE-funksjonen til å fungere korrekt med datoer, kan du konvertere datoer til tekststrenger først ved å bruke TEXT-funksjonen eller en annen teknikk som er demonstrert i Hvordan konvertere dato til tekst i Excel. Alternativt kan du bygge inn TEXT-funksjonen direkte i old_text-argumentet til REPLACE-funksjonen:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Husk at resultatet av formelen ovenfor er en tekststreng , og derfor fungerer denne løsningen kun hvis du ikke planlegger å bruke de endrede datoene i videre beregninger. Hvis du trenger datoer i stedet for tekststrenger, bruk DATOVERDI-funksjonen for å endre verdiene som returneres avExcel REPLACE-funksjonen tilbake til dato:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))
Nestede REPLACE-funksjoner for å gjøre flere erstatninger i en celle
Ganske ofte må du kanskje gjøre mer enn én erstatning i samme celle. Du kan selvfølgelig gjøre én erstatning, skrive ut et mellomresultat i en ekstra kolonne og deretter bruke REPLACE-funksjonen igjen. En bedre og mer profesjonell måte er imidlertid å bruke nestede REPLACE-funksjoner som lar deg utføre flere erstatninger med en enkelt formel. I denne sammenheng betyr "nesting" å plassere en funksjon i en annen.
Tenk på følgende eksempel. Anta at du har en liste over telefonnumre i kolonne A formatert som "123456789", og du vil få dem til å se mer ut som telefonnumre ved å legge til bindestreker. Målet ditt er med andre ord å gjøre "123456789" til "123-456-789".
Det er enkelt å sette inn den første bindestreken. Du skriver en vanlig Excel Replace-formel som erstatter null tegn med en bindestrek, dvs. legger til en bindestrek på fjerde plassering i en celle:
=REPLACE(A2,4,0,"-")
Resultatet av ovenfor Erstatt formelen er som følger:
Ok, og nå må vi sette inn en bindestrek til i åttende posisjon. For å gjøre dette, plasserer du formelen ovenfor i en annen Excel REPLACE-funksjon. Mer presist, du legger det inn i argumentet gammel_tekst til den andre funksjonen, slik at den andre REPLACE-funksjonen vil håndtere verdien som returneres avførst ERSTATT, og ikke verdien i celle A2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
Som resultat får du telefonnumrene i ønsket formatering:
På lignende måte kan du bruke nestede REPLACE-funksjoner for å få tekststrenger til å se ut som datoer ved å legge til en skråstrek (/) der det er aktuelt:
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
I tillegg kan du konvertere tekststrenger til reelle datoer ved å pakke ERSTATT-formelen ovenfor med DATOVERDI-funksjonen:
=DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Og selvfølgelig er du ikke begrenset i antall funksjoner du kan neste innenfor én formel (de moderne versjonene av Excel 2010, 2013 og 2016 tillater opptil 8192 tegn og opptil 64 nestede funksjoner i en formel).
Du kan for eksempel bruke 3 nestede REPLACE-funksjoner for å ha et tall i A2 som dato og klokkeslett:
=REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
Erstatte en streng som vises på en annen plass i hver celle
Så langt har vi i alle eksemplene hatt å gjøre med verdier av liknende karakter og har gjort erstatninger i samme posisjon på i hver celle. Men oppgaver i det virkelige liv er ofte mer kompliserte enn som så. I regnearkene dine kan det hende at tegnene som skal erstattes ikke nødvendigvis vises på samme sted i hver celle, og derfor må du finne plasseringen til det første tegnet som skal erstattes. Følgende eksempel vil demonstrere hva jeg snakker om.
Forutsatt at du har en liste med e-postadressering i kolonne A. Og navnet på ett selskap har endret seg fra "ABC" til for eksempel "BCA". Så du må oppdatere alle kundenes e-postadresser tilsvarende.
Men problemet er at klientnavnene er av ulik lengde, og det er derfor du ikke kan spesifisere nøyaktig hvor firmanavnet begynner. Med andre ord, du vet ikke hvilken verdi du skal angi i start_num-argumentet til Excel REPLACE-funksjonen. For å finne det ut, bruk Excel FIND-funksjonen til å bestemme posisjonen til det første tegnet i strengen "@abc":
=FIND("@abc",A2)
Og så oppgi FINN-funksjonen ovenfor i start_num argumentet for ERSTATT-formelen din:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Tips. Vi inkluderer "@" i vår Excel Finn og erstatt-formel for å unngå utilsiktede erstatninger i navnedelen av e-postadresser. Selvfølgelig er det en svært liten sjanse for at slike kamper vil skje, og likevel kan det være lurt å være på den sikre siden.
Som du ser i følgende skjermbilde, har formelen ingen problemer med å finne og erstatte gammel tekst med den nye. Men hvis tekststrengen som skal erstattes ikke blir funnet, returnerer formelen #VERDI! feil:
Og vi vil at formelen skal returnere den opprinnelige e-postadressen i stedet for feilen. Så la oss legge ved vår FINN & ERSTAT formelen i IFERROR-funksjonen:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
Og denne forbedrede formelen fungerer perfekt, ikke sant?
En annen praktiskbruk av REPLACE-funksjonen er å skrive den første bokstaven i en celle med stor bokstav. Hver gang du arbeider med en liste over navn, produkter og lignende, kan du bruke formelen ovenfor for å endre den første bokstaven til STORE BOKSTAVER.
Tips. Hvis du ønsker å foreta erstatningene i de originale dataene, er en enklere måte å bruke dialogboksen FINN og ERSTATT i Excel.
Excel ERSTATT-funksjonen
ERSTATT-funksjonen i Excel erstatter én eller flere forekomster av et gitt tegn eller tekststreng med et spesifisert tegn.
Syntaksen til Excel ERSTATT-funksjonen er som følger:
ERSTATT(tekst, gammel_tekst, ny_tekst, [forekomstnummer])De tre første argumentene er obligatoriske og det siste er valgfritt.
- Tekst - den originale teksten du vil erstatte tegn i. Kan leveres som en teststreng, cellereferanse eller et resultat av en annen formel.
- Gamle_tekst - tegnet(e) du vil erstatte.
- Ny_tekst - det eller de nye tegnene å erstatte gammel_tekst med.
- Forekomstnummer - forekomsten av gammel_tekst du vil erstatte. Hvis den utelates, vil hver forekomst av den gamle teksten bli endret til den nye teksten.
For eksempel, alle formlene nedenfor erstatter "1" med "2" i celle A2, men returnerer andre resultater avhengig av hvilket tall du oppgir i det siste argumentet:
=SUBSTITUTE(A2, "1", "2", 1)
- Erstatter den første forekomsten av "1" med"2".
=SUBSTITUTE(A2, "1", "2", 2)
- Erstatter den andre forekomsten av "1" med "2".
=SUBSTITUTE(A2, "1", "2")
- Erstatter alle forekomster av "1" med "2".
I praksis brukes ERSTATT-funksjonen også for å fjerne uønskede tegn fra celler. For eksempler fra det virkelige liv, vennligst se:
- Hvordan fjerne tegn eller ord fra streng
- Hvordan slette uønskede tegn fra celler
Merk. ERSTATT-funksjonen i Excel er skiller mellom store og små bokstaver . For eksempel erstatter følgende formel alle forekomster av den store bokstaven "X" med "Y" i celle A2, men den vil ikke erstatte noen forekomster av den lille "x".
Erstatt flere verdier med en enkelt formel (nestet ERSTATTNING)
Som tilfellet er med Excel REPLACE-funksjonen, kan du neste flere ERSTATT-funksjoner i en enkelt formel for å gjøre flere erstatninger samtidig, dvs. erstatte flere tegn eller understrenger med en enkelt formel.
Anta at du har en tekststreng som " PR1, ML1, T1 " i celle A2, der "PR" står for "Project, "ML " står for "Milestone" og "T" betyr "Task". Det du ønsker er å erstatte de tre kodene med fulle navn. For å oppnå dette kan du skrive 3 forskjellige ERSTATT-formler:
=SUBSTITUTE(A2,"PR", "Project ")
=SUBSTITUTE(A2, "ML", "Milestone ")
=SUBSTITUTE(A2, "T", "Task ")
Og nest dem inn i hverandre:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"PR","Project "),"ML","Milestone "),"T","Task ")
Merk at vi har lagt til et mellomrom på slutten av hvert new_text argument for bedrelesbarhet.
For å lære andre måter å erstatte flere verdier på om gangen, se Hvordan massefinner og erstatter i Excel.
Excel REPLACE vs. Excel ERSTATT
Excel ERSTATT- og ERSTATT-funksjonene er svært like hverandre ved at begge er utformet for å bytte tekststrenger. Forskjellene mellom de to funksjonene er som følger:
- SUBSTITUTE erstatter en eller flere forekomster av et gitt tegn eller en tekststreng. Så hvis du vet teksten som skal erstattes, bruk Excel ERSTATT-funksjonen.
- ERSTATT endrer tegn i en spesifisert posisjon i en tekststreng. Så hvis du vet posisjonen til tegnet/tegnene som skal erstattes, bruk Excel REPLACE-funksjonen.
- Erstatningsfunksjonen i Excel lar deg legge til en valgfri parameter (instance_num) som spesifiserer hvilken forekomst av gammel_tekst bør endres til ny_tekst.
Slik bruker du ERSTATT- og ERSTATT-funksjonene i Excel. Forhåpentligvis vil disse eksemplene være nyttige for å løse oppgavene dine. Jeg takker for at du leser og håper å se på bloggen vår neste uke!
Last ned øvelsesarbeidsbok
ERSTATT og ERSTTT formeleksempler (.xlsx-fil)