Ús de les funcions de substitució i substitució d'Excel - exemples de fórmules

  • Comparteix Això
Michael Brown

El tutorial explica les funcions SUBSTITUIR i SUBSTITUIR d'Excel amb exemples d'usos. Vegeu com utilitzar la funció SUBSTITUIR amb cadenes de text, números i dates, i com niuar diverses funcions SUBSTITUIR o SUBSTITUIR dins d'una fórmula.

La setmana passada vam parlar de diverses maneres d'utilitzar les funcions TROBA i CERCA dins d'una fórmula. els vostres fulls de treball d'Excel. Avui, aprofundirem en altres dues funcions per substituir el text d'una cel·la en funció de la seva ubicació o substituir una cadena de text per una altra segons el contingut. Com haureu endevinat, parlo de les funcions d'Excel REPLACE i SUBSTITUTE.

    Funció d'Excel REPLACE

    La funció REPLACE d'Excel us permet intercanviar una o diverses caràcters d'una cadena de text amb un altre caràcter o un conjunt de caràcters.

    REPLACE(text_antic, número_inici, caràcters_núm., text_nou)

    Com veieu, la funció SUBSTITUIR d'Excel té 4 arguments, tots ells obligatoris.

    • Text_antic : el text original (o una referència a una cel·la amb el text original) en què voleu substituir alguns caràcters.
    • Núm_inici : la posició del primer caràcter dins del text_antic que voleu substituir.
    • Núm_caràcters : el nombre de caràcters que voleu substituir.
    • Nou_text. : el text de substitució.

    Per exemple, per canviar la paraula " sol " per " fill ", podeu utilitzar el següentfórmula:

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

    I si poseu la paraula original en alguna cel·la, per exemple A2, podeu proporcionar la referència de cel·la corresponent a l'argument de text_antigu:

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

    Nota. Si l'argument start_num o num_chars és negatiu o no numèric, una fórmula de substitució d'Excel retorna el #VALOR! error.

    Utilització de la funció REPLACE d'Excel amb valors numèrics

    La funció REPLACE d'Excel està dissenyada per funcionar amb cadenes de text. Per descomptat, podeu utilitzar-lo per substituir caràcters numèrics que formen part d'una cadena de text, per exemple:

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

    Tingueu en compte que adjuntem "2016 " entre cometes dobles com normalment feu amb els valors de text.

    De manera similar, podeu substituir un o més dígits dins d'un nombre. Per exemple:

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

    I de nou, heu d'incloure el valor de substitució entre cometes dobles ("6").

    Nota. Una fórmula d'Excel REPLACE sempre retorna una cadena de text , no un número. A la captura de pantalla anterior, observeu l'alineació esquerra del valor de text retornat a B2 i compareu-lo amb el número original alineat a la dreta a A2. I com que és un valor de text, no el podreu utilitzar en altres càlculs tret que el torneu a convertir en nombre, per exemple, multiplicant per 1 o utilitzant qualsevol altre mètode descrit a Com convertir text en nombre.

    Utilitzar la funció SUBSTITUIR d'Excel amb dates

    Com acabeu de veure, la funció SUBSTITUIR funciona bé ambnúmeros, excepte que retorna una cadena de text :) Recordant que al sistema Excel intern, les dates s'emmagatzemen com a números, podeu provar d'utilitzar algunes fórmules de substitució a les dates. Els resultats serien força vergonyosos.

    Per exemple, tens una data a A2, per exemple 1-Oct-14, i vols canviar " Oct " per " Nov ". Per tant, escriviu la fórmula REPLACE(A2, 4, 3, "Nov") que diu a Excel que substitueixi 3 caràcters a les cel·les A2 que comencen amb el quart caràcter... i obteniu el resultat següent:

    Per què? Perquè "01-Oct-14" és només una representació visual del número de sèrie subjacent (41913) que representa la data. Per tant, la nostra fórmula de substitució canvia els 3 últims dígits del número de sèrie anterior a " Nov " i retorna la cadena de text "419Nov".

    Per aconseguir que la funció REPLACE d'Excel funcioni correctament. dates, primer podeu convertir les dates en cadenes de text utilitzant la funció TEXT o qualsevol altra tècnica demostrada a Com convertir la data a text a Excel. Alternativament, podeu incrustar la funció TEXT directament a l'argument antic_text de la funció REPLACE:

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

    Recordeu que el resultat de la fórmula anterior és una cadena de text i, per tant, aquesta solució només funciona si no teniu previst utilitzar les dates modificades en càlculs posteriors. Si necessiteu dates en lloc de cadenes de text, utilitzeu la funció DATEVALUE per convertir els valors retornats perla funció de SUBSTITUÏT d'Excel torna a les dates:

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

    Funcions de SUBSTITUCIÓ imbricades per fer múltiples substitucions en una cel·la

    Molt sovint, és possible que hàgiu de fer més d'una substitució a la mateixa cèl·lula. Per descomptat, podeu fer una substitució, generar un resultat intermedi en una columna addicional i, a continuació, tornar a utilitzar la funció REEMPLACE. Tanmateix, una manera millor i més professional és utilitzar funcions REPLACE imbricades que us permeten realitzar diverses substitucions amb una única fórmula. En aquest context, "niar" significa col·locar una funció dins d'una altra.

    Considereu l'exemple següent. Suposant que teniu una llista de números de telèfon a la columna A amb el format "123456789" i voleu que semblin més números de telèfon afegint guions. En altres paraules, el vostre objectiu és convertir "123456789" en "123-456-789".

    Inserir el primer guionet és fàcil. Escriu una fórmula habitual de substitució d'Excel que substitueix zero caràcters per un guionet, és a dir, afegeix un guionet a la quarta posició d'una cel·la:

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

    El resultat de la La fórmula de substitució de dalt és la següent:

    D'acord, i ara hem d'inserir un guionet més a la vuitena posició. Per fer-ho, col·loqueu la fórmula anterior dins d'una altra funció d'Excel REPLACE. Més precisament, l'incorporeu a l'argument old_text de l'altra funció, de manera que la segona funció REPLACE gestionarà el valor retornat per la funció.primer REEMPLACE, i no el valor de la cel·la A2:

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

    Com a resultat, obtindreu els números de telèfon amb el format desitjat:

    De manera semblant, podeu utilitzar les funcions de REPLACE imbricades per fer que les cadenes de text semblin dates afegint una barra inclinada (/) quan escaigui:

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

    A més, podeu convertir cadenes de text en dates reals embolicant la fórmula REPLACE anterior amb la funció DATEVALUE:

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

    I, naturalment, no esteu limitat en el nombre de funcions. podeu niar dins d'una fórmula (les versions modernes d'Excel 2010, 2013 i 2016 permeten fins a 8192 caràcters i fins a 64 funcions imbricades en una fórmula).

    Per exemple, podeu utilitzar 3 funcions REPLACE imbricades per que aparegui un número en A2 com la data i l'hora:

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

    Substituint una cadena que apareix en una posició diferent a cada cel·la

    Fins ara, en tots els exemples hem estat tractant amb valors de naturalesa similar i hem fet substitucions en el mateix positiu encès a cada cel·la. Però les tasques de la vida real sovint són més complicades que això. Als vostres fulls de treball, és possible que els caràcters a substituir no apareguin necessàriament al mateix lloc de cada cel·la i, per tant, haureu de trobar la posició del primer caràcter que s'hauria de substituir. L'exemple següent mostrarà de què parlo.

    Suposant que teniu una llista de correu electrònicadreçament a la columna A. I el nom d'una empresa ha canviat de "ABC" a, per exemple, "BCA". Per tant, heu d'actualitzar totes les adreces de correu electrònic dels clients en conseqüència.

    Però el problema és que els noms dels clients són de longitud diferent, i per això no podeu especificar exactament on comença el nom de l'empresa. En altres paraules, no sabeu quin valor proporcionar a l'argument start_num de la funció REPLACE d'Excel. Per esbrinar-ho, utilitzeu la funció FIND d'Excel per determinar la posició del primer caràcter a la cadena "@abc":

    =FIND("@abc",A2)

    I, a continuació, proporcioneu la funció FIND anterior al nombre_inici. argument de la vostra fórmula REPLACE:

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

    Consell. Incloem "@" a la nostra fórmula de cerca i substitució d'Excel per evitar substitucions accidentals a la part del nom de les adreces de correu electrònic. Per descomptat, hi ha molt poca possibilitat que es produeixin coincidències d'aquest tipus, i tot i així és possible que vulgueu estar segur.

    Com veieu a la captura de pantalla següent, la fórmula no té cap problema per trobar i substituir el text antic amb el nou. Tanmateix, si no es troba la cadena de text que s'ha de substituir, la fórmula retorna el #VALOR! error:

    I volem que la fórmula retorni l'adreça de correu electrònic original en lloc de l'error. Així doncs, adjuntem el nostre FIND & SUBSTITUIR la fórmula a la funció IFERROR:

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

    I aquesta fórmula millorada funciona perfectament, no?

    Una altra pràctica pràcticaL'aplicació de la funció REPLACE és posar en majúscula la primera lletra d'una cel·la. Sempre que tracteu amb una llista de noms, productes i similars, podeu utilitzar la fórmula enllaçada anteriorment per canviar la primera lletra a MÀJÚCULA.

    Consell. Si voleu fer les substitucions a les dades originals, una manera més fàcil seria utilitzar el diàleg TROBA i SUBSTITUÏT d'Excel.

    Funció SUBSTITUCIÓ d'Excel

    La funció SUBSTITUCIÓ d'Excel substitueix una o més instàncies. d'un caràcter o cadena de text determinada amb un(s) caràcter(s) especificat.

    La sintaxi de la funció SUBSTITUCIÓ d'Excel és la següent:

    SUBSTITUCIÓ(text, text_antic, text_nou, [núm_instància])

    Els tres primers arguments són obligatoris i l'últim és opcional.

    • Text : el text original en què voleu substituir caràcters. Es pot proporcionar com a cadena de prova, referència de cel·la o com a resultat d'una altra fórmula.
    • Text_antic : els caràcters que voleu substituir.
    • Nou_text : els nous caràcters per substituir el text_antic.
    • Núm_instància : l'aparició del text_antic que voleu substituir. Si s'omet, cada aparença del text antic es canviarà pel text nou.

    Per exemple, totes les fórmules següents substitueixen "1" per "2" a la cel·la A2, però retornen resultats diferents. depenent del número que proporcioneu a l'últim argument:

    =SUBSTITUTE(A2, "1", "2", 1) - Substitueix la primera ocurrència de "1" per"2".

    =SUBSTITUTE(A2, "1", "2", 2) - Substitueix la segona aparició d'"1" per "2".

    =SUBSTITUTE(A2, "1", "2") - Substitueix totes les ocurrències d'"1" per "2".

    A la pràctica, la funció SUBSTITUTE també s'utilitza per eliminar caràcters no desitjats de les cel·les. Per obtenir exemples de la vida real, consulteu:

    • Com eliminar caràcters o paraules de la cadena
    • Com eliminar caràcters no desitjats de les cel·les

    Nota. La funció SUBSTITUTE a Excel és distingeix entre majúscules i minúscules . Per exemple, la fórmula següent substitueix totes les instàncies de la "X" majúscula per "Y" a la cel·la A2, però no substituirà cap cas de la "x" minúscula.

    Substituïu diversos valors amb una única fórmula (SUBSTITUT imbricat)

    Com és el cas de la funció SUBSTITUIR d'Excel, podeu niuar diverses funcions SUBSTITUIR dins d'una mateixa fórmula per fer diverses substitucions alhora, és a dir, substituir diversos caràcters o subcadenes amb una única fórmula.

    Suposant que teniu una cadena de text com " PR1, ML1, T1 " a la cel·la A2, on "PR" significa "Projecte, "ML " significa "Fita" i "T" significa "Tasca". El que voleu és substituir els tres codis per noms complets. Per aconseguir-ho, podeu escriure 3 fórmules SUBSTITUT diferents:

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

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

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

    I després niu-los entre si:

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

    Observeu que hem afegit un espai al final de cada argument de text_nou per a millorllegibilitat.

    Per aprendre altres maneres de reemplaçar diversos valors alhora, vegeu Com fer una cerca i substitució massiva a Excel.

    Excel REPLACE vs. Excel SUBSTITUTE

    Les funcions de substitució i substitució d'Excel són molt semblants entre elles, ja que totes dues estan dissenyades per intercanviar cadenes de text. Les diferències entre les dues funcions són les següents:

    • SUBSTITUTE substitueix una o més instàncies d'un caràcter determinat o d'una cadena de text. Per tant, si sabeu el text que cal substituir, utilitzeu la funció SUBSTITUT d'Excel.
    • REPLACE canvia els caràcters en una posició especificada d'una cadena de text. Per tant, si coneixeu la posició dels caràcters a substituir, utilitzeu la funció REPLACE d'Excel.
    • La funció SUBSTITUTE a Excel permet afegir un paràmetre opcional (núm_instància) que especifica quina ocurrència de text_antic s'hauria de canviar a text_nou.

    Així és com s'utilitzen les funcions SUBSTITUÏR i SUBSTITUIR a Excel. Amb sort, aquests exemples us resultaran útils per resoldre les vostres tasques. Us agraeixo la lectura i espero veure'l al nostre bloc la setmana vinent!

    Descarregueu el quadern de pràctiques

    SUSTITUIR i SUBSTITUIR exemples de fórmules (fitxer .xlsx)

    Michael Brown és un entusiasta de la tecnologia dedicat amb una passió per simplificar processos complexos mitjançant eines de programari. Amb més d'una dècada d'experiència en la indústria tecnològica, ha perfeccionat les seves habilitats en Microsoft Excel i Outlook, així com en Google Sheets i Docs. El bloc de Michael es dedica a compartir els seus coneixements i experiència amb altres persones, oferint consells i tutorials fàcils de seguir per millorar la productivitat i l'eficiència. Tant si sou un professional experimentat com si sou un principiant, el bloc de Michael ofereix valuoses idees i consells pràctics per treure el màxim profit d'aquestes eines de programari essencials.