Funções de Texto

Função SUBSTITUIRB no Excel: Descubra Como Usar na Prática

Aprenda a usar a função SUBSTITUIRB no Excel com exemplos práticos de substituição por bytes, diferença entre MUDAR e SUBSTITUIRB e uso com idiomas DBCS.

A função SUBSTITUIRB substitui parte de uma cadeia de texto com base no número de bytes especificado, e não no número de caracteres. Essa distinção é o que a diferencia da função MUDAR, que trabalha exclusivamente com contagem de caracteres. O uso da SUBSTITUIRB é direcionado a cenários que envolvem idiomas com conjunto de caracteres de dois bytes, como japonês, chinês simplificado, chinês tradicional e coreano, onde cada caractere ocupa dois bytes na memória.

Para usuários que trabalham com idiomas de byte único, como o português, a função se comporta de forma idêntica à MUDAR, já que cada caractere corresponde a exatamente um byte. Conhecer essa diferença evita resultados inesperados ao manipular planilhas multilíngues.

Sintaxe da Função SUBSTITUIRB

A função aceita quatro argumentos, todos obrigatórios.

=SUBSTITUIRB(texto_antigo; núm_inicial; núm_bytes; novo_texto)

Cada argumento tem um papel específico na operação:

  • texto_antigo — o texto original no qual será feita a substituição. Pode ser digitado diretamente entre aspas ou referenciado por uma célula.
  • núm_inicial — a posição do primeiro byte a partir do qual a substituição começa. A contagem sempre parte do byte 1, que corresponde ao início do texto.
  • núm_bytes — o número de bytes que serão substituídos a partir da posição inicial definida no argumento anterior.
  • novo_texto — o texto que vai ocupar o lugar dos bytes removidos. Para apagar conteúdo sem substituir por nada, basta informar aspas duplas vazias "".

A Diferença Entre MUDAR e SUBSTITUIRB

Antes de avançar para os exemplos, é fundamental entender quando cada função deve ser usada. A distinção está inteiramente na forma como cada uma conta a extensão do texto.

FunçãoConta porIdiomas recomendados
MUDARCaracteres (1 por símbolo)Todos os idiomas, incluindo português.
SUBSTITUIRBBytes (1 ou 2 por símbolo)Japonês, chinês, coreano e outros idiomas DBCS.

No contexto do português e de outros idiomas ocidentais, cada caractere ocupa exatamente um byte. Assim, as duas funções produzem resultados idênticos para textos em português. A diferença aparece quando o texto contém caracteres de idiomas DBCS, onde cada símbolo ocupa dois bytes, e contar por caractere difere de contar por byte.

Um exemplo simples: o ideograma japonês 「あ」 ocupa 2 bytes. Em um texto que começa com esse caractere, MUDAR consideraria a posição 1 como o primeiro caractere, enquanto SUBSTITUIRB consideraria os bytes 1 e 2 separadamente.

Exemplos Práticos com SUBSTITUIRB

Exemplos Práticos com SUBSTITUIRB

Os exemplos a seguir cobrem situações reais de uso, do básico ao avançado.

Exemplo 1: Substituição por posição em texto de byte único

Para textos em português, a SUBSTITUIRB funciona exatamente como a função MUDAR. O exemplo abaixo substitui um trecho em uma string de código de produto.

A coluna A contém os códigos originais e a coluna B receberá os resultados:

Célula ATexto OriginalFórmulaResultado
A2PROD-2023-BR=SUBSTITUIRB(A2;6;4;"2025")PROD-2025-BR
A3REF-0011-SP=SUBSTITUIRB(A3;5;4;"0099")REF-0099-SP
A4COD-ABC-01=SUBSTITUIRB(A4;5;3;"XYZ")COD-XYZ-01
A5ITEM-ALFA-99=SUBSTITUIRB(A5;6;4;"BETA")ITEM-BETA-99

O segundo argumento define onde a substituição começa (em qual byte), e o terceiro define quantos bytes serão removidos antes de inserir o novo texto.

Exemplo 2: Remover trecho de texto com aspas vazias

Quando o objetivo é remover um segmento do texto sem colocar nada no lugar, o quarto argumento recebe aspas duplas vazias. Essa abordagem elimina prefixos, sufixos ou trechos intermediários desnecessários.

Texto OriginalFórmulaResultado
BR-CODIGO-001=SUBSTITUIRB(A2;1;3;"")CODIGO-001
##Relatório Final=SUBSTITUIRB(A3;1;2;"")Relatório Final
Produto [DESC]=SUBSTITUIRB(A4;9;6;"")Produto

O resultado da última linha mantém o espaço antes de [DESC], pois a remoção começa no byte 9 e abrange apenas os 6 bytes que formam [DESC].

Exemplo 3: Substituição em texto com caracteres DBCS

O comportamento diferenciado da Função SUBSTITUIRB emerge ao trabalhar com caracteres japoneses ou chineses. Considere um texto que mistura caracteres DBCS com letras latinas, com o Excel configurado para um idioma DBCS como idioma padrão.

Texto original: 東京ABC (onde 「東」e「京」são caracteres de 2 bytes cada, e ABC são de 1 byte cada)

FórmulaBytes substituídosResultado
=MUDAR("東京ABC";1;2;"XX")Substitui os 2 primeiros caracteresXXABC
=SUBSTITUIRB("東京ABC";1;2;"X")Substitui os 2 primeiros bytes (apenas 「東」)X京ABC
=SUBSTITUIRB("東京ABC";1;4;"XX")Substitui 4 bytes (「東京」completos)XXABC

Perceba que a MUDAR contou 2 caracteres (「東」e「京」) enquanto a SUBSTITUIRB contou 2 bytes (equivalente a apenas 「東」). Isso demonstra a diferença fundamental entre as duas funções.

Exemplo 4: Substituição aninhada em múltiplos trechos

A SUBSTITUIRB pode ser aninhada dentro de si mesma para realizar duas substituições em posições distintas de um mesmo texto, em uma única fórmula.

O exemplo abaixo substitui o ano e o mês de um código de lote:

Texto OriginalFórmulaResultado
LOTE-2023-JAN-BR=SUBSTITUIRB(SUBSTITUIRB(A2;6;4;"2025");11;3;"FEV")LOTE-2025-FEV-BR

A função interna substitui 2023 por 2025, e a função externa recebe o resultado intermediário e substitui JAN por FEV. A posição dos bytes é sempre contada no texto original para a substituição interna e no texto resultante para a substituição externa.

Erros Comuns e Como Evitá-los

Conhecer as mensagens de erro da SUBSTITUIRB evita retrabalho na planilha.

  • #VALOR! — ocorre quando núm_inicial ou núm_bytes recebem valores negativos ou não numéricos.
  • Resultado incorreto — ocorre quando a posição inicial é contada errada. Lembre-se de que a contagem começa em 1, não em 0.
  • Texto intacto — ocorre quando núm_bytes é igual a 0. Nesse caso, a função insere o novo texto na posição indicada sem remover nada do original.

Perguntas Frequentes

1. Qual a diferença prática entre SUBSTITUIRB e SUBSTITUIR no Excel?

A função SUBSTITUIR localiza e troca um texto específico por outro, independentemente da posição. A SUBSTITUIRB, por sua vez, substitui pelo número de bytes a partir de uma posição definida, sem precisar saber qual texto está naquela posição, apenas onde ele começa.

2. A função SUBSTITUIRB diferencia letras maiúsculas de minúsculas?

Não. A SUBSTITUIRB opera exclusivamente por posição e quantidade de bytes, sem analisar o conteúdo do texto substituído. A distinção entre maiúsculas e minúsculas é irrelevante para a função, pois ela não localiza texto pelo valor, apenas pela posição.

3. É possível usar SUBSTITUIRB com referências de célula em todos os argumentos?

Sim, todos os quatro argumentos aceitam referências de célula normalmente. A fórmula =SUBSTITUIRB(A2; B2; C2; D2) funciona sem restrições e é a abordagem ideal em tabelas onde posição, extensão e novo texto variam por linha.

Conclusão

A função SUBSTITUIRB entrega controle preciso sobre substituições em cadeias de texto quando a posição é medida em bytes, tornando-se indispensável em planilhas que processam dados em idiomas com conjunto de caracteres de dois bytes. Para ambientes em português, o comportamento é idêntico ao da função MUDAR, mas o domínio da SUBSTITUIRB prepara a planilha para funcionar corretamente em contextos multilíngues. Quem compreende a diferença entre contagem por caractere e contagem por byte evita erros silenciosos ao manipular textos de diferentes origens e codificações.

Ainda tem dúvidas?
Envie sua pergunta e o editor pode publicar a resposta no FAQ do artigo.
Nenhuma pergunta publicada ainda. Seja o primeiro!

Edivaldo

Edivaldo. Analista de funções e fórmulas de Excel, adoro fazer planilhas e compartilhar meus conhecimentos com as pessoas. Seja bem-vindo ao tudo Excel, onde você aprende de graça e tira suas dúvidas.

Deixe um comentário

Botão Voltar ao topo