Utilizarea funcțiilor Excel REPLACE și SUBSTITUTE - exemple de formule

  • Imparte Asta
Michael Brown

Acest tutorial explică funcțiile Excel REPLACE și SUBSTITUTE cu exemple de utilizare. Vedeți cum se utilizează funcția REPLACE cu șiruri de text, numere și date și cum se pot anina mai multe funcții REPLACE sau SUBSTITUTE într-o singură formulă.

Săptămâna trecută am discutat despre diverse modalități de utilizare a funcțiilor FIND și SEARCH în foile de lucru Excel. Astăzi, vom examina mai în profunzime alte două funcții pentru a înlocui textul dintr-o celulă în funcție de locația acestuia sau pentru a înlocui un șir de text cu altul în funcție de conținut. După cum probabil ați ghicit, vorbesc despre funcțiile Excel REPLACE și SUBSTITUTE.

    Funcția Excel REPLACE

    Funcția REPLACE din Excel vă permite să înlocuiți unul sau mai multe caractere dintr-un șir de text cu un alt caracter sau cu un set de caractere.

    REPLACE(old_text, start_num, num_chars, new_text)

    După cum vedeți, funcția Excel REPLACE are 4 argumente, toate fiind obligatorii.

    • Vechi_text - textul original (sau o referință la o celulă cu textul original) în care doriți să înlocuiți anumite caractere.
    • Număr_de_început - poziția primului caracter din old_text pe care doriți să îl înlocuiți.
    • Num_chars - numărul de caractere pe care doriți să le înlocuiți.
    • New_text - textul de înlocuire.

    De exemplu, pentru a schimba cuvântul " soare " în " fiul ", puteți utiliza următoarea formulă:

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

    Iar dacă puneți cuvântul original într-o celulă, de exemplu A2, puteți furniza referința celulei corespunzătoare în argumentul old_text:

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

    Notă: Dacă argumentul start_num sau num_chars este negativ sau nenumeric, o formulă Excel Replace returnează eroarea #VALUE!

    Utilizarea funcției Excel REPLACE cu valori numerice

    Funcția REPLACE din Excel este concepută pentru a lucra cu șiruri de text. Desigur, o puteți utiliza pentru a înlocui caracterele numerice care fac parte dintr-un șir de text, de exemplu:

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

    Observați că "2016" este inclus între ghilimele duble, așa cum se face de obicei cu valorile text.

    În mod similar, puteți înlocui una sau mai multe cifre dintr-un număr. De exemplu:

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

    Și din nou, trebuie să includeți valoarea de înlocuire între ghilimele duble ("6").

    Notă. O formulă Excel REPLACE returnează întotdeauna un șir de text În captura de ecran de mai sus, observați alinierea la stânga a valorii de text returnate în B2 și comparați-o cu numărul original aliniat la dreapta din A2. Și pentru că este o valoare de text, nu o veți putea utiliza în alte calcule decât dacă o convertiți înapoi în număr, de exemplu prin înmulțirea cu 1 sau prin utilizarea oricărei alte metode descrise în Cum să convertiți un text în număr.

    Utilizarea funcției Excel REPLACE cu date

    După cum tocmai ați văzut, funcția REPLACE funcționează bine cu numere, cu excepția faptului că returnează un șir de text :) Amintindu-vă că, în sistemul intern Excel, datele sunt stocate ca numere, puteți încerca să utilizați unele formule Replace pe date. Rezultatele ar fi destul de jenante.

    De exemplu, aveți o dată în A2, să zicem 1-Oct-14, și doriți să schimbați " Octombrie " în " Noiembrie ". Așadar, scrieți formula REPLACE(A2, 4, 3, "Nov") care îi spune lui Excel să înlocuiască 3 caractere în celulele A2 începând cu al 4-lea caracter... și obțineți următorul rezultat:

    De ce? Deoarece "01-Oct-14" este doar o reprezentare vizuală a numărului de serie de bază (41913) care reprezintă data. Astfel, formula noastră de înlocuire schimbă ultimele 3 cifre din numărul de serie de mai sus în " Noiembrie " și returnează șirul de text "419Nov".

    Pentru ca funcția Excel REPLACE să funcționeze corect cu date, puteți converti datele în șiruri de text mai întâi prin utilizarea funcției TEXT sau a oricărei alte tehnici demonstrate în Cum să convertiți date în text în Excel. Alternativ, puteți încorpora funcția TEXT direct în argumentul old_text al funcției REPLACE:

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

    Vă rugăm să rețineți că rezultatul formulei de mai sus este un șir de text Prin urmare, această soluție funcționează numai dacă nu intenționați să utilizați datele modificate în calcule ulterioare. Dacă aveți nevoie de date în loc de șiruri de text, utilizați funcția DATEVALUE pentru a transforma valorile returnate de funcția Excel REPLACE înapoi în date:

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

    Funcții REPLACE imbricate pentru a face înlocuiri multiple într-o celulă

    Destul de des, este posibil să aveți nevoie să efectuați mai multe înlocuiri în aceeași celulă. Desigur, ați putea efectua o înlocuire, să scoateți un rezultat intermediar într-o coloană suplimentară și apoi să utilizați din nou funcția REPLACE. Cu toate acestea, o modalitate mai bună și mai profesională este să utilizați funcții REPLACE imbricate care vă permit să efectuați mai multe înlocuiri cu o singură formulă. În acest context, "anidarea" înseamnă plasarea unei funcții în cadrul alteia.

    Luați în considerare următorul exemplu. Să presupunem că aveți o listă de numere de telefon în coloana A formatată ca "123456789" și doriți să le faceți să arate mai mult ca numere de telefon prin adăugarea de cratime. Cu alte cuvinte, obiectivul dvs. este de a transforma "123456789" în "123-456-789".

    Inserarea primei cratime este ușoară. Scrieți o formulă obișnuită Excel Replace care înlocuiește zero caractere cu o cratimă, adică adaugă o cratimă în poziția a patra într-o celulă:

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

    Rezultatul formulei Replace de mai sus este următorul:

    Bine, iar acum trebuie să mai inserăm o cratimă în poziția a 8-a. Pentru a face acest lucru, plasați formula de mai sus în cadrul unei alte funcții Excel REPLACE. Mai exact, o încorporați în funcția old_text al celeilalte funcții, astfel încât cea de-a doua funcție REPLACE să gestioneze valoarea returnată de prima funcție REPLACE, și nu valoarea din celula A2:

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

    Ca rezultat, veți obține numerele de telefon în formatul dorit:

    În mod similar, puteți utiliza funcțiile REPLACE imbricate pentru a face ca șirurile de text să semene cu datele, adăugând o bară oblică (/) acolo unde este cazul:

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

    În plus, puteți converti șirurile de text în date reale prin includerea formulei REPLACE de mai sus cu funcția DATEVALUE:

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

    Și, bineînțeles, nu sunteți limitat în ceea ce privește numărul de funcții pe care le puteți îngloba într-o formulă (versiunile moderne ale Excel 2010, 2013 și 2016 permit până la 8192 de caractere și până la 64 de funcții înglobate într-o formulă).

    De exemplu, puteți utiliza 3 funcții REPLACE imbricate pentru ca un număr din A2 să apară ca data și ora:

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

    Înlocuirea unui șir de caractere care apare într-o poziție diferită în fiecare celulă

    Până acum, în toate exemplele am avut de-a face cu valori de natură similară și am efectuat înlocuiri în aceeași poziție în fiecare celulă. Dar sarcinile din viața reală sunt adesea mai complicate decât atât. În foile de calcul, este posibil ca caracterele care trebuie înlocuite să nu apară neapărat în același loc în fiecare celulă și, prin urmare, va trebui să găsește poziția primului caracter care ar trebui înlocuit. Următorul exemplu va demonstra la ce mă refer.

    Să presupunem că aveți o listă de adrese de e-mail în coloana A. Și numele unei companii s-a schimbat din "ABC" în, să zicem, "BCA". Deci, trebuie să actualizați în mod corespunzător adresele de e-mail ale tuturor clienților.

    Dar problema este că numele clienților sunt de lungimi diferite și de aceea nu puteți specifica exact unde începe numele companiei. Cu alte cuvinte, nu știți ce valoare să furnizați în argumentul start_num al funcției Excel REPLACE. Pentru a afla, utilizați funcția Excel FIND pentru a determina poziția primului caracter din șirul "@abc":

    =FIND("@abc",A2)

    Apoi, furnizați funcția FIND de mai sus în argumentul start_num al formulei REPLACE:

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

    Sfat: Am inclus "@" în formula noastră de căutare și înlocuire din Excel pentru a evita înlocuirile accidentale în partea de nume a adreselor de e-mail. Desigur, există o șansă foarte mică ca astfel de potriviri să apară, și totuși, este posibil să doriți să fiți în siguranță.

    După cum vedeți în următoarea captură de ecran, formula nu are nicio problemă în a găsi și a înlocui textul vechi cu cel nou. Cu toate acestea, dacă șirul de text care urmează să fie înlocuit nu este găsit, formula returnează eroarea #VALUE!

    Și dorim ca formula să returneze adresa de e-mail originală în loc de eroare. Așadar, să includem formula noastră FIND & REPLACE în funcția IFERROR:

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

    Și această formulă îmbunătățită funcționează perfect, nu-i așa?

    O altă aplicație practică a funcției REPLACE este de a scrie cu majuscule prima literă dintr-o celulă. Ori de câte ori aveți de-a face cu o listă de nume, produse și altele asemenea, puteți utiliza formula de mai sus pentru a schimba prima literă în majuscule.

    Sfat: Dacă doriți să efectuați înlocuirile în datele originale, o modalitate mai simplă ar fi utilizarea dialogului Excel FIND and REPLACE.

    Funcția Excel SUBSTITUTE

    Funcția SUBSTITUTE din Excel înlocuiește unul sau mai multe exemple ale unui anumit caracter sau șir de caractere cu unul sau mai multe caractere specificate.

    Sintaxa funcției Excel SUBSTITUTE este următoarea:

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

    Primele trei argumente sunt obligatorii, iar ultimul este opțional.

    • Text - textul original în care doriți să înlocuiți caracterele. Poate fi furnizat ca șir de test, referință de celulă sau rezultat al unei alte formule.
    • Vechi_text - caracterul (caracterele) pe care doriți să îl (le) înlocuiți.
    • New_text - caracterul (caracterele) nou(e) cu care se înlocuiește old_text.
    • Număr_instanță - apariția din old_text pe care doriți să o înlocuiți. Dacă se omite, fiecare apariție a textului vechi va fi înlocuită cu textul nou.

    De exemplu, toate formulele de mai jos înlocuiesc "1" cu "2" în celula A2, dar returnează rezultate diferite în funcție de numărul pe care îl furnizați în ultimul argument:

    =SUBSTITUTE(A2, "1", "2", 1) - Înlocuiește prima apariție a lui "1" cu "2".

    =SUBSTITUTE(A2, "1", "2", 2) - Înlocuiește a doua apariție a lui "1" cu "2".

    =SUBSTITUTE(A2, "1", "2") - Înlocuiește toate aparițiile lui "1" cu "2".

    În practică, funcția SUBSTITUTE este utilizată și pentru eliminarea caracterelor nedorite din celule. Pentru exemple din viața reală, consultați:

    • Cum să eliminați caractere sau cuvinte din șirul de caractere
    • Cum să ștergeți caracterele nedorite din celule

    Notă. Funcția SUBSTITUTE din Excel este Sensibil la majuscule și minuscule De exemplu, următoarea formulă înlocuiește toate cazurile de majuscule "X" cu "Y" în celula A2, dar nu va înlocui niciun caz de minuscule "x".

    Înlocuiți mai multe valori cu o singură formulă (SUBSTITUTE imbricate)

    La fel ca în cazul funcției Excel REPLACE, puteți anina mai multe funcții SUBSTITUTE într-o singură formulă pentru a efectua mai multe substituiri deodată, adică pentru a înlocui mai multe caractere sau subșiruri cu o singură formulă.

    Să presupunem că aveți un șir de text ca " PR1, ML1, ML1, T1 " în celula A2, unde "PR" înseamnă "Project", "ML" înseamnă "Milestone", iar "T" înseamnă "Task". Ceea ce doriți este să înlocuiți cele trei coduri cu nume complete. Pentru a realiza acest lucru, puteți scrie 3 formule SUBSTITUTE diferite:

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

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

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

    Și apoi să le aninăm una în alta:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "PR", "Project "), "ML", "Milestone "), "T", "Task ")

    Observați că am adăugat un spațiu la sfârșitul fiecărui argument new_text pentru o mai bună lizibilitate.

    Pentru a afla și alte modalități de a înlocui mai multe valori odată, consultați Cum se face căutarea și înlocuirea în masă în Excel.

    Excel REPLACE vs. Excel SUBSTITUTE

    Funcțiile Excel REPLACE și SUBSTITUTE sunt foarte asemănătoare între ele, în sensul că ambele sunt concepute pentru a schimba șiruri de text. Diferențele dintre cele două funcții sunt următoarele:

    • SUBSTITUTE înlocuiește unul sau mai multe instanțe a unui anumit caracter sau a unui șir de text. Așadar, dacă știți textul care trebuie înlocuit, utilizați funcția Excel SUBSTITUTE.
    • REPLACE schimbă caracterele dintr-un anumit poziția Așadar, dacă știți poziția caracterului (caracterelor) care trebuie înlocuit(e), utilizați funcția Excel REPLACE.
    • Funcția SUBSTITUTE din Excel permite adăugarea unui parametru opțional (instance_num) care specifică ce apariție din old_text ar trebui să fie schimbat în new_text.

    Iată cum se utilizează funcțiile SUBSTITUTE și REPLACE în Excel. Sperăm că aceste exemple se vor dovedi utile în rezolvarea sarcinilor dumneavoastră. Vă mulțumesc pentru lectură și sper să ne revedem pe blog săptămâna viitoare!

    Descărcați caietul de practică

    Exemple de formule REPLACE și SUBSTITUTE (fișier .xlsx)

    Michael Brown este un pasionat de tehnologie dedicat, cu o pasiune pentru simplificarea proceselor complexe folosind instrumente software. Cu mai mult de un deceniu de experiență în industria tehnologiei, el și-a perfecționat abilitățile în Microsoft Excel și Outlook, precum și în Google Sheets și Docs. Blogul lui Michael este dedicat împărtășirii cunoștințelor și experienței sale cu alții, oferind sfaturi și tutoriale ușor de urmat pentru îmbunătățirea productivității și eficienței. Indiferent dacă sunteți un profesionist experimentat sau un începător, blogul lui Michael oferă informații valoroase și sfaturi practice pentru a profita la maximum de aceste instrumente software esențiale.