Táboa de contidos
O titorial explica as funcións SUBSTITUIR e SUBSTITUIR de Excel con exemplos de usos. Vexa como usar a función SUBSTITUIR con cadeas de texto, números e datas, e como aniñar varias funcións SUBSTITUIR ou SUBSTITUIR nunha mesma fórmula.
A semana pasada comentamos varias formas de usar as funcións BUSCAR e BUSCAR dentro dunha mesma fórmula. as túas follas de traballo de Excel. Hoxe, analizaremos outras dúas funcións para substituír texto nunha cela en función da súa localización ou substituír unha cadea de texto por outra en función do contido. Como xa adiviñarás, estou a falar das funcións SUBSTITUIR e SUBSTITUIR de Excel.
Función SUBSTITUIR de Excel
A función SUBSTITUIR en Excel permíteche intercambiar unha ou varias caracteres nunha cadea de texto con outro carácter ou un conxunto de caracteres.
REPLACE(texto_antigo, num_inicio, caracteres_num, texto_novo)Como ves, a función SUBSTITUIR de Excel ten 4 argumentos, todos eles necesarios.
- Texto_antigo : o texto orixinal (ou unha referencia a unha cela co texto orixinal) no que desexa substituír algúns caracteres.
- Número_inicio : a posición do primeiro carácter dentro do texto_antigo que quere substituír.
- Número_caracteres : o número de caracteres que quere substituír.
- Novo_texto - o texto de substitución.
Por exemplo, para cambiar a palabra " sol " por " fillo ", pode usar o seguintefórmula:
=REPLACE("sun", 2, 1, "o")
E se pon a palabra orixinal nalgunha cela, digamos A2, pode proporcionar a referencia de cela correspondente no argumento de texto_antigo:
=REPLACE(A2, 2, 1, "o")
Nota. Se o argumento start_num ou num_chars é negativo ou non numérico, unha fórmula de substitución de Excel devolve o #VALOR! erro.
Uso da función SUBSTITUIR de Excel con valores numéricos
A función SUBSTITUIR en Excel está deseñada para funcionar con cadeas de texto. Por suposto, podes usalo para substituír caracteres numéricos que forman parte dunha cadea de texto, por exemplo:
=REPLACE(A2, 7, 4, "2016")
Teña en conta que incluímos "2016 " entre comiñas dobres como adoita facer cos valores de texto.
De forma semellante, pode substituír un ou máis díxitos dentro dun número. Por exemplo:
=REPLACE(A4, 4, 4,"6")
E de novo, tes que incluír o valor de substitución entre comiñas dobres ("6").
Nota. Unha fórmula de Excel REPLACE sempre devolve unha cadea de texto , non un número. Na captura de pantalla anterior, observe o aliñamento á esquerda do valor de texto devolto en B2 e compárao co número orixinal aliñado á dereita en A2. E como é un valor de texto, non poderás usalo noutros cálculos a non ser que o convertas de novo en número, por exemplo multiplicando por 1 ou utilizando calquera outro método descrito en Como converter texto en número.
Uso da función SUBSTITUIR de Excel con datas
Como acaba de ver, a función SUBSTITUIR funciona ben connúmeros, agás que devolve unha cadea de texto :) Lembrando que no sistema Excel interno, as datas gárdanse como números, podes tentar utilizar algunhas fórmulas Substituír nas datas. Os resultados serían bastante vergoñentos.
Por exemplo, tes unha data en A2, digamos 1-oct-14, e queres cambiar " out " por " nov ". Entón, escribe a fórmula REPLACE(A2, 4, 3, "Nov") que lle indica a Excel que substitúa 3 caracteres nas celas A2 que comezan polo 4º carácter... e obtivo o seguinte resultado:
Por que? Porque "01-Oct-14" é só unha representación visual do número de serie subxacente (41913) que representa a data. Entón, a nosa fórmula Substituír cambia os 3 últimos díxitos do número de serie anterior a " Nov " e devolve a cadea de texto "419Nov".
Para que a función REPLACE de Excel funcione correctamente. datas, pode converter as datas en cadeas de texto primeiro usando a función TEXTO ou calquera outra técnica demostrada en Como converter data en texto en Excel. Alternativamente, pode inserir a función TEXT directamente no argumento de texto_antigo da función REPLACE:
=REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov")
Lembre que o resultado da fórmula anterior é unha cadea de texto e, polo tanto, esta solución só funciona se non planea utilizar as datas modificadas en cálculos posteriores. Se precisas datas en lugar de cadeas de texto, utiliza a función DATEVALUE para transformar os valores devoltos pora función de SUBSTITUCIÓN de Excel volve ás datas:
=DATEVALUE(REPLACE(TEXT(A2, "dd-mmm-yy"), 4, 3, "Nov"))
Funcións de substitución aniñadas para facer varias substitucións nunha cela
Moitas veces, é posible que necesites facer máis dunha substitución en a mesma cela. Por suposto, podes facer unha substitución, mostrar un resultado intermedio nunha columna adicional e, a continuación, usar a función SUBSTITUIR de novo. Non obstante, unha forma mellor e máis profesional é utilizar funcións de substitución aniñadas que che permiten realizar varias substitucións cunha única fórmula. Neste contexto, "aniñar" significa colocar unha función dentro doutra.
Considere o seguinte exemplo. Supoñamos que tes unha lista de números de teléfono na columna A con formato "123456789" e queres que se parezan máis a números de teléfono engadindo guións. Noutras palabras, o teu obxectivo é converter "123456789" en "123-456-789".
Inserir o primeiro guión é doado. Escribe unha fórmula habitual de substitución de Excel que substitúe cero caracteres por un guión, é dicir, engade un guión na cuarta posición dunha cela:
=REPLACE(A2,4,0,"-")
O resultado do anterior Substituír a fórmula é a seguinte:
Está ben, e agora necesitamos inserir un guión máis na 8ª posición. Para iso, coloca a fórmula anterior dentro doutra función REPLACE de Excel. Máis precisamente, incorpórao no argumento old_text da outra función, de xeito que a segunda función REPLACE xestionará o valor devolto poloprimeiro SUBSTITUIR, e non o valor da cela A2:
=REPLACE(REPLACE(A2,4,0,"-"),8,0,"-")
Como resultado, obtén os números de teléfono co formato desexado:
De forma similar, podes usar funcións REPLACE aniñadas para que as cadeas de texto semellan datas engadindo unha barra inclinada (/) cando corresponda:
=(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
Ademais, pode converter cadeas de texto en datas reais envolvendo a fórmula REPLACE anterior coa función DATEVALUE:
=DATEVALUE(REPLACE(REPLACE(A2,3,0,"/"),6,0,"/"))
E, por suposto, non está limitado no número de funcións. pode aniñar nunha fórmula (as versións modernas de Excel 2010, 2013 e 2016 permiten ata 8192 caracteres e ata 64 funcións aniñadas nunha fórmula).
Por exemplo, pode usar 3 funcións aniñadas REPLACE para ter un número en A2 como a data e a hora:
=REPLACE(REPLACE(REPLACE(REPLACE(A2,3,0,"/") ,6,0,"/"), 9,0, " "), 12,0, ":")
Substituír unha cadea que aparece nunha posición diferente en cada cela
Ata agora, en todos os exemplos estivemos tratando valores de semellante natureza e realizamos substitucións na mesma posición. en cada cela. Pero as tarefas da vida real adoitan ser máis complicadas que iso. Nas túas follas de traballo, os caracteres a substituír poden non aparecer necesariamente no mesmo lugar de cada cela e, polo tanto, terás que buscar a posición do primeiro carácter que debes substituír. O seguinte exemplo demostrará o que estou a falar.
Supoño que tes unha lista de correo electrónicoenderezo na columna A. E o nome dunha empresa cambiou de "ABC" a, por exemplo, "BCA". Polo tanto, tes que actualizar todos os enderezos de correo electrónico dos clientes en consecuencia.
Pero o problema é que os nomes dos clientes son de lonxitude diferente, e por iso non podes especificar exactamente onde comeza o nome da empresa. Noutras palabras, non sabe que valor proporcionar no argumento num_inicio da función REPLACE de Excel. Para descubrilo, use a función FIND de Excel para determinar a posición do primeiro carácter na cadea "@abc":
=FIND("@abc",A2)
E, a continuación, proporcione a función FIND anterior no inicio_núm. argumento da túa fórmula REPLACE:
=REPLACE(A2, FIND("@abc",A2), 4, "@bca")
Consello. Incluímos "@" na nosa fórmula de Excel Buscar e substituír para evitar substitucións accidentais na parte do nome dos enderezos de correo electrónico. Por suposto, hai moi poucas posibilidades de que se produzan tales coincidencias, e aínda así pode querer estar seguro.
Como ves na seguinte captura de pantalla, a fórmula non ten ningún problema para atopar e substituír o texto antigo co novo. Non obstante, se non se atopa a cadea de texto que se vai substituír, a fórmula devolve o #VALOR! erro:
E queremos que a fórmula devolva o enderezo de correo electrónico orixinal en lugar do erro. Entón, acheguemos o noso FIND & SUBSTITUIR a fórmula na función IFERROR:
=IFERROR(REPLACE(A2, FIND("@abc",A2), 4, "@bca"),A2)
E esta fórmula mellorada funciona perfectamente, non é?
Outro prácticoA aplicación da función SUBSTITUIR é poñer en maiúscula a primeira letra dunha cela. Sempre que trates cunha lista de nomes, produtos e similares, podes usar a fórmula da ligazón anterior para cambiar a primeira letra a MAIÚSCULAS.
Consello. Se queres facer as substitucións nos datos orixinais, un xeito máis sinxelo sería usar o diálogo BUSCAR e SUBSTITUIR de Excel.
Función SUBSTITUIR de Excel
A función SUBSTITUIR en Excel substitúe unha ou máis instancias. dun carácter ou cadea de texto determinado cun(s) carácter(s) especificado.
A sintaxe da función SUBSTITUCIÓN de Excel é a seguinte:
SUBSTITUCIÓN(texto, texto_antigo, texto_novo, [número_instancia])Os tres primeiros argumentos son necesarios e o último é opcional.
- Texto : o texto orixinal no que quere substituír caracteres. Pódese proporcionar como cadea de proba, referencia de cela ou resultado doutra fórmula.
- Texto_antigo : o(s) carácter(s) que quere substituír.
- Novo_texto : o(s) carácter(s) novo(s) para substituír o texto_antigo.
- Número_instancia : a aparición do texto_antigo que quere substituír. Se se omite, todas as aparicións do texto antigo cambiaranse polo novo.
Por exemplo, todas as fórmulas seguintes substitúen "1" por "2" na cela A2, pero devolven resultados diferentes. dependendo do número que proporciones no último argumento:
=SUBSTITUTE(A2, "1", "2", 1)
- Substitúe a primeira aparición de "1" por"2".
=SUBSTITUTE(A2, "1", "2", 2)
- Substitúe a segunda aparición de "1" por "2".
=SUBSTITUTE(A2, "1", "2")
- Substitúe todas as ocorrencias de "1" por "2".
Na práctica, a función SUBSTITUTE tamén se usa para eliminar caracteres non desexados das celas. Para obter exemplos reais, consulta:
- Como eliminar caracteres ou palabras da cadea
- Como eliminar caracteres non desexados das celas
Nota. A función SUBSTITUTE en Excel é distingue entre maiúsculas e minúsculas . Por exemplo, a seguinte fórmula substitúe todas as instancias da "X" maiúscula por "Y" na cela A2, pero non substituirá ningunha das "x" minúsculas.
Substituír varios valores cunha única fórmula (SUBSTITUTO anidado)
Como é o caso da función SUBSTITUIR de Excel, pode aniñar varias funcións SUBSTITUIR nunha soa fórmula para facer varias substitucións á vez, é dicir, substituír varios caracteres ou subcadeas cunha única fórmula.
Supoño que tes unha cadea de texto como " PR1, ML1, T1 " na cela A2, onde "PR" significa "Proxecto, "ML " significa "Milestone" e "T" significa "Tarefa". O que queres é substituír os tres códigos por nomes completos. Para conseguilo, podes escribir 3 fórmulas de SUBSTITUTO diferentes:
=SUBSTITUTE(A2,"PR", "Project ")
=SUBSTITUTE(A2, "ML", "Milestone ")
=SUBSTITUTE(A2, "T", "Task ")
E logo aniñalos entre si:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,"PR","Project "),"ML","Milestone "),"T","Task ")
Teña en conta que engadimos un espazo ao final de cada argumento novo_texto para mellorlexibilidade.
Para aprender outras formas de substituír varios valores á vez, consulta Como facer a busca e substitución masiva en Excel.
Excel REPLACE vs. . SUBSTITUCIÓN de Excel
As funcións SUBSTITUIR e SUBSTITUIR de Excel son moi similares entre si, xa que ambas están deseñadas para intercambiar cadeas de texto. As diferenzas entre as dúas funcións son as seguintes:
- SUBSTITUTE substitúe unha ou máis instancias dun determinado carácter ou unha cadea de texto. Polo tanto, se coñece o texto que se vai substituír, use a función SUBSTITUCIÓN de Excel.
- SUBSTITUIR cambia os caracteres nunha posición especificada dunha cadea de texto. Polo tanto, se coñece a posición do(s) carácter(s) que se vai substituír, use a función SUBSTITUIR de Excel.
- A función SUBSTITUIR en Excel permite engadir un parámetro opcional (número_instance) que especifique que ocurrencia de texto_antigo debería cambiarse a texto_novo.
Así se usan as funcións SUBSTITUIR e SUBSTITUIR en Excel. Esperemos que estes exemplos sexan útiles para resolver as súas tarefas. Grazas por ler e espero velos no noso blog a próxima semana!
Descargar o libro de prácticas
SUBSTITUIR e SUBSTITUIR exemplos de fórmulas (ficheiro .xlsx)