Substitui todas as instâncias de uma cadeia de caracteres especificada por uma nova cadeia de caracteres.
Sintaxe
REPLACE(cadeia; texto_anterior; texto_novo)
Parâmetros
Nome | Tipo | Descrição |
---|---|---|
cadeia |
caractere |
O valor cujos caracteres devem ser substituídos. |
texto_anterior |
caractere |
A cadeia de caracteres a ser substituída. A pesquisa diferencia maiúsculas de minúsculas. |
texto_novo | caractere | O texto com que o valor no texto_anterior deve ser substituído. |
Saída
Caractere.
Exemplos
Exemplos básicos
Retorna "a12345efg":
REPLACE("abcdefg";"bcd";"12345")
Retorna "Rd.":
REPLACE("Road";"Road";"Rd.")
Retorna "ac":
REPLACE("abc";"b";"")
Exemplos avançados
Remoção de caracteres específicos
Use REPLACE( ) para remover uma cadeia de caracteres especificada de uma cadeia de origem, substituindo-a por uma cadeia de caracteres vazia ("").
Retorna "1234 Scott":
REPLACE("1234 Scott rd."; "rd."; "")
Ajuste de comprimento do campo
Se novo_texto ("ABC") for maior que texto_anterior ("X"), o comprimento do campo da cadeia resultante será aumentado automaticamente para acomodar a primeira substituição:
Retorna "9ABC9", com um comprimento do campo aumentado para 5 de 3 caracteres:
REPLACE("9X9"; "X"; "ABC")
O comprimento do campo não é aumentado automaticamente nas substituições subsequentes, o que possibilita truncamento se o campo não é grande o suficiente para acomodar todos os novos caracteres.
Retorna "9ABC9A":
REPLACE("9X9X"; "X"; "ABC")
Para evitar truncamento, você pode aumentar o comprimento de cadeia usando a função BLANKS( ) ou espaços em branco literais.
Retorna "9ABC9ABC":
REPLACE("9X9X" + BLANKS(2); "X"; "ABC")
REPLACE("9X9X" + " "; "X"; "ABC")
Se a cadeia resultante for menor que cadeia, a cadeia resultante será preenchida com espaços em branco para manter o mesmo comprimento do campo.
Retorna "9X9 ":
REPLACE("9ABC9"; "ABC"; "X")
Observações
Como funciona?
A função REPLACE( ) substitui cada instância de uma cadeia existente por uma nova cadeia.
Retorna "1234 Scott Road":
REPLACE("1234 Scott rd."; "rd."; "Road")
Quando usar REPLACE( )
Use REPLACE( ) para normalizar campos de dados com formatos inconsistentes, como campos de endereço ou para substituir informações inválidas em campos com erros de edição. Para ser realizado de forma precisa, as operações, tais como testes de duplicidades, junção ou tabelas relacionadas, exigem que os dados sejam normalizados ou padronizados em termos de formato.
Diferenciação de maiúsculas e minúsculas
A função REPLACE( ) diferencia entre maiúsculas e minúsculas. Se você especificar "RD." em texto_anterior e os valores na cadeia estiverem em minúsculas, o valor de texto_novo não será substituído porque nenhuma correspondência será encontrada.
Se houver a possibilidade de combinação de minúsculas e maiúsculas na cadeia, utilize primeiramente a função UPPER( ) para converter todos os caracteres em letras maiúsculas.
Retorna "1234 SCOTT ROAD":
REPLACE(UPPER("1234 Scott rd."); "RD."; "ROAD")
Proteção contra substituições acidentais
Ao criar uma expressão REPLACE( ), é preciso levar em conta cada instância possível do texto_anterior na cadeia para que não ocorram substituições indesejadas.
Retorna "645 RichaRoad Road" porque as duas últimas letras de "Richard" são "rd":
REPLACE("645 Richard rd "; "rd"; "Road")
A adição de um espaço à esquerda e à direita do valor do texto_anterior (" rd ") evita que a função substitua instâncias em que "rd" ocorre em um nome, porque nesses casos não há espaços à esquerda.
Retorna "645 Richard Road":
REPLACE("645 Richard rd "; " rd "; " Road")