Brug af Excel-funktionerne REPLACE og SUBSTITUTE - eksempler på formler

  • Del Dette
Michael Brown

I denne vejledning forklares Excel-funktionerne REPLACE og SUBSTITUTE med eksempler på anvendelser. Se, hvordan du bruger funktionen REPLACE med tekststrenge, tal og datoer, og hvordan du integrerer flere REPLACE- eller SUBSTITUTE-funktioner i én formel.

I sidste uge diskuterede vi forskellige måder at bruge FIND- og SEARCH-funktionerne på i dine Excel-regneark. I dag vil vi se nærmere på to andre funktioner til at erstatte tekst i en celle baseret på dens placering eller erstatte en tekststreng med en anden baseret på indhold. Som du måske har gættet, taler jeg om Excel-funktionerne REPLACE og SUBSTITUTE.

    Excel REPLACE-funktion

    Funktionen REPLACE i Excel giver dig mulighed for at udskifte et eller flere tegn i en tekststreng med et andet tegn eller et sæt af tegn.

    REPLACE(old_text, start_num, num_chars, new_text)

    Som du kan se, har Excel-funktionen REPLACE 4 argumenter, som alle er obligatoriske.

    • Old_text - den oprindelige tekst (eller en henvisning til en celle med den oprindelige tekst), hvor du vil erstatte nogle tegn.
    • Start_nummer - positionen for det første tegn i old_text, som du ønsker at erstatte.
    • Num_chars - det antal tegn, du vil erstatte.
    • Ny_tekst - den tekst, der skal erstatte den.

    Hvis du f.eks. vil ændre ordet " sol " til " søn ", kan du bruge følgende formel:

    =REPLACE("sun", 2, 1, "o")

    Og hvis du placerer det oprindelige ord i en celle, f.eks. A2, kan du angive den tilsvarende cellehenvisning i argumentet old_text:

    =REPLACE(A2, 2, 1, "o")

    Bemærk: Hvis start_num eller num_chars-argumentet er negativt eller ikke-nummerisk, returnerer en Excel Erstat formel fejlen #VALUE!

    Brug af Excel REPLACE-funktionen med numeriske værdier

    Funktionen REPLACE i Excel er designet til at arbejde med tekststrenge. Du kan naturligvis også bruge den til at erstatte numeriske tegn, der f.eks. er en del af en tekststreng:

    =REPLACE(A2, 7, 4, "2016")

    Bemærk, at vi sætter "2016" i dobbelte anførselstegn, som du normalt gør med tekstværdier.

    På samme måde kan du erstatte et eller flere cifre i et tal. F.eks:

    =REPLACE(A4, 4, 4,4, "6")

    Og igen skal du omslutte erstatningsværdien i dobbelte anførselstegn ("6").

    Bemærk. En Excel REPLACE-formel returnerer altid en tekststreng I skærmbilledet ovenfor kan du se den venstrejustering af den returnerede tekstværdi i B2 og sammenligne den med det højrejusterede oprindelige tal i A2. Og fordi det er en tekstværdi, kan du ikke bruge den i andre beregninger, medmindre du konverterer den tilbage til et tal, f.eks. ved at gange med 1 eller ved at bruge en anden metode, der er beskrevet i Sådan konverteres tekst til tal.

    Brug af Excel REPLACE-funktionen med datoer

    Som du lige har set, fungerer REPLACE-funktionen fint med tal, bortset fra at den returnerer en tekststreng :) Da datoer i det interne Excel-system gemmes som tal, kan du forsøge at bruge nogle Replace-formler på datoer. Resultaterne ville være ret pinlige.

    Hvis du f.eks. har en dato i A2, f.eks. 1-okt-14, og du vil ændre " okt " til " nov "Så du skriver formlen REPLACE(A2, 4, 3, "Nov"), der fortæller Excel at erstatte 3 tegn i cellerne A2, der begynder med det 4. tegn... og får følgende resultat:

    Fordi "01-okt-14" kun er en visuel repræsentation af det underliggende serienummer (41913), som repræsenterer datoen. Så vores formel Replace ændrer de sidste 3 cifre i ovenstående serienummer til " nov " og returnerer tekststrengen "419Nov".

    For at få Excel-funktionen REPLACE til at fungere korrekt med datoer kan du først konvertere datoer til tekststrenge ved hjælp af TEXT-funktionen eller en anden teknik, der er vist i Sådan konverteres datoer til tekst i Excel. Alternativt kan du integrere TEXT-funktionen direkte i argumentet old_text i REPLACE-funktionen:

    =REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")

    Husk, at resultatet af ovenstående formel er en tekststreng , og derfor fungerer denne løsning kun, hvis du ikke har planer om at bruge de ændrede datoer i yderligere beregninger. Hvis du har brug for datoer i stedet for tekststrenge, skal du bruge funktionen DATEVALUE til at omdanne de værdier, der returneres af Excel-funktionen REPLACE, tilbage til datoer:

    =DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))

    RePLACE-funktioner til at foretage flere udskiftninger i en celle

    Ofte kan det være nødvendigt at foretage mere end én udskiftning i den samme celle. Du kan selvfølgelig foretage én udskiftning, udstede et mellemresultat i en ekstra kolonne og derefter bruge REPLACE-funktionen igen. En bedre og mere professionel måde er dog at bruge REPLACE-funktioner med indlejrede funktioner som giver dig mulighed for at udføre flere erstatninger med en enkelt formel. I denne sammenhæng betyder "indlejring" at placere en funktion i en anden.

    Tag følgende eksempel: Antag, at du har en liste med telefonnumre i kolonne A, der er formateret som "123456789", og at du ønsker at få dem til at ligne telefonnumre ved at tilføje bindestreger. Med andre ord er dit mål at gøre "123456789" til "123-456-789".

    Det er nemt at indsætte den første bindestreg. Du skriver en sædvanlig Excel-formel, der erstatter nul tegn med en bindestreg, dvs. tilføjer en bindestreg i den fjerde position i en celle:

    =REPLACE(A2,4,4,0,"-")

    Resultatet af ovenstående formel Replace er som følger:

    Okay, og nu skal vi indsætte endnu en bindestreg i den 8. position. For at gøre dette skal du placere ovenstående formel i en anden Excel REPLACE-funktion. Mere præcist skal du indlejre den i gammel_tekst argumentet i den anden funktion, så den anden REPLACE-funktion vil håndtere den værdi, der returneres af den første REPLACE, og ikke værdien i celle A2:

    =REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")

    Resultatet er, at du får telefonnumrene i den ønskede formatering:

    På samme måde kan du bruge REPLACE-funktioner til at få tekststrenge til at ligne datoer ved at tilføje en skråstreg (/), hvor det er relevant:

    =(REPLACE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/")))

    Desuden kan du konvertere tekststrenge til rigtige datoer ved at omvikle ovenstående REPLACE-formel med DATEVALUE-funktionen:

    =DATEVALUE(REPLACE(REPLACE(REPLACE(A2,3,3,0,"/"),6,0,"/")))

    Og naturligvis er du ikke begrænset i antallet af funktioner, du kan indlejre i en formel (de moderne versioner af Excel 2010, 2013 og 2016 tillader op til 8192 tegn og op til 64 indlejrede funktioner i en formel).

    Du kan f.eks. bruge tre REPLACE-funktioner til at få et tal i A2 til at fremstå som dato og klokkeslæt:

    =REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " " "), 12,0, ":")

    Udskiftning af en streng, der vises i en anden position i hver celle

    Indtil videre har vi i alle eksemplerne beskæftiget os med værdier af samme art og har foretaget udskiftninger på samme sted i hver celle. Men opgaverne i det virkelige liv er ofte mere komplicerede end det. I dine regneark forekommer de tegn, der skal udskiftes, ikke nødvendigvis samme sted i hver celle, og derfor er du nødt til at finde positionen for det første tegn Det følgende eksempel viser, hvad jeg taler om.

    Antag, at du har en liste over e-mail-adresser i kolonne A. Og navnet på en virksomhed er ændret fra "ABC" til f.eks. "BCA". Du skal derfor opdatere alle kundernes e-mail-adresser i overensstemmelse hermed.

    Men problemet er, at klientnavnene er af forskellig længde, og derfor kan du ikke angive præcis, hvor firmanavnet begynder. Du ved med andre ord ikke, hvilken værdi du skal angive i start_num-argumentet i Excel REPLACE-funktionen. For at finde ud af det skal du bruge Excel FIND-funktionen til at bestemme placeringen af det første tegn i strengen "@abc":

    =FIND("@abc",A2)

    Og angiv derefter ovenstående FIND-funktion i start_num-argumentet i din REPLACE-formel:

    =REPLACE(A2, FIND("@abc",A2), 4, "@bca")

    Tip. Vi inkluderer "@" i vores Excel Find og erstat-formel for at undgå utilsigtede erstatninger i navnedelen af e-mail-adresser. Der er selvfølgelig en meget lille chance for, at sådanne matchninger vil forekomme, og alligevel vil du måske gerne være på den sikre side.

    Som du kan se på det følgende skærmbillede, har formlen ingen problemer med at finde og erstatte den gamle tekst med den nye. Men hvis den tekststreng, der skal erstattes, ikke findes, returnerer formlen fejlen #VALUE!:

    Og vi ønsker, at formlen skal returnere den oprindelige e-mail-adresse i stedet for fejlen. Så lad os omslutte vores FIND & REPLACE-formel i IFERROR-funktionen:

    =IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2),A2)

    Og denne forbedrede formel fungerer perfekt, ikke sandt?

    En anden praktisk anvendelse af REPLACE-funktionen er at gøre det første bogstav i en celle til stort bogstav. Når du har at gøre med en liste over navne, produkter og lignende, kan du bruge ovenstående formel til at ændre det første bogstav til stort bogstav.

    Tip. Hvis du vil foretage udskiftningerne i de oprindelige data, er det nemmere at bruge Excel-dialogboksen FIND og REPLACE.

    Excel SUBSTITUTE-funktion

    Funktionen SUBSTITUTE i Excel erstatter en eller flere forekomster af et givent tegn eller en tekststreng med et eller flere angivne tegn.

    Syntaksen for Excel SUBSTITUTE-funktionen er som følger:

    SUBSTITUTE(text, old_text, new_text, [instance_num])

    De tre første argumenter er obligatoriske, og det sidste er valgfrit.

    • Tekst - den oprindelige tekst, som du vil erstatte tegn i. Kan angives som en teststreng, en cellehenvisning eller et resultat af en anden formel.
    • Old_text - det eller de tegn, du vil erstatte.
    • Ny_tekst - det eller de nye tegn, der skal erstatte old_text med.
    • Instance_num - den forekomst af old_text, som du vil erstatte. Hvis den udelades, vil alle forekomster af den gamle tekst blive ændret til den nye tekst.

    Alle nedenstående formler erstatter f.eks. "1" med "2" i celle A2, men giver forskellige resultater, afhængigt af hvilket tal du angiver i det sidste argument:

    =SUBSTITUT(A2, "1", "2", 1) - Erstatter den første forekomst af "1" med "2".

    =SUBSTITUT(A2, "1", "2", 2) - Erstatning af den anden forekomst af "1" med "2".

    =SUBSTITUT(A2, "1", "2") - Erstatter alle forekomster af "1" med "2".

    I praksis bruges SUBSTITUTE-funktionen også til at fjerne uønskede tegn fra celler. Du kan se eksempler fra det virkelige liv:

    • Sådan fjerner du tegn eller ord fra en streng
    • Sådan sletter du uønskede tegn fra celler

    Bemærk. SUBSTITUTE-funktionen i Excel er skraldefølsom Følgende formel erstatter f.eks. alle forekomster af stort "X" med "Y" i celle A2, men den erstatter ikke alle forekomster af lille "x".

    Erstat flere værdier med en enkelt formel (indlejret SUBSTITUTE)

    Som det er tilfældet med Excel-funktionen REPLACE, kan du integrere flere SUBSTITUTE-funktioner i en enkelt formel for at foretage flere erstatninger ad gangen, dvs. erstatte flere tegn eller delstrenge med en enkelt formel.

    Hvis du har en tekststreng som " PR1, ML1, T1 " i celle A2, hvor "PR" står for "Projekt", "ML" står for "Milepæl" og "T" betyder "Opgave". Det, du ønsker, er at erstatte de tre koder med fulde navne. For at opnå dette kan du skrive 3 forskellige SUBSTITUTE-formler:

    =SUBSTITUTE(A2, "PR", "Projekt ")

    =SUBSTITUTE(A2, "ML", "Milestone ")

    =SUBSTITUTE(A2, "T", "Task ")

    Og derefter lægge dem ind i hinanden:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Projekt "), "ML", "Milepæl "), "T", "Opgave ")

    Bemærk, at vi har tilføjet et mellemrum i slutningen af hvert new_text-argument for at forbedre læsbarheden.

    Du kan lære andre måder at erstatte flere værdier ad gangen på ved at se Sådan udfører du massefind og -erstatning i Excel.

    Excel REPLACE vs. Excel SUBSTITUTE

    Excel-funktionerne REPLACE og SUBSTITUTE ligner hinanden meget, idet de begge er beregnet til at bytte tekststrenge. Forskellene mellem de to funktioner er følgende:

    • SUBSTITUTE erstatter en eller flere instanser af et givet tegn eller en tekststreng. Hvis du kender den tekst, der skal erstattes, kan du altså bruge Excel-funktionen SUBSTITUTE.
    • REPLACE ændrer tegn i et angivet position Hvis du kender placeringen af det eller de tegn, der skal erstattes, kan du bruge Excel-funktionen REPLACE.
    • Funktionen SUBSTITUTE i Excel gør det muligt at tilføje en valgfri parameter (instance_num), der angiver, hvilken forekomst i old_text skal ændres til new_text.

    Sådan bruger du SUBSTITUTE- og REPLACE-funktionerne i Excel. Forhåbentlig kan disse eksempler være nyttige til at løse dine opgaver. Jeg takker for læsningen og håber at se dig på vores blog i næste uge!

    Download arbejdsbog til øvelser

    Eksempler på formler til erstatnings- og erstatningsformler (.xlsx-fil)

    Michael Brown er en dedikeret teknologientusiast med en passion for at forenkle komplekse processer ved hjælp af softwareværktøjer. Med mere end ti års erfaring i teknologibranchen har han finpudset sine færdigheder i Microsoft Excel og Outlook samt Google Sheets og Docs. Michaels blog er dedikeret til at dele sin viden og ekspertise med andre og giver nemme at følge tips og vejledninger til at forbedre produktiviteten og effektiviteten. Uanset om du er en erfaren professionel eller nybegynder, tilbyder Michaels blog værdifuld indsigt og praktiske råd til at få mest muligt ud af disse vigtige softwareværktøjer.