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ção | Conta por | Idiomas recomendados |
|---|---|---|
MUDAR | Caracteres (1 por símbolo) | Todos os idiomas, incluindo português. |
SUBSTITUIRB | Bytes (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

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 A | Texto Original | Fórmula | Resultado |
|---|---|---|---|
| A2 | PROD-2023-BR | =SUBSTITUIRB(A2;6;4;"2025") | PROD-2025-BR |
| A3 | REF-0011-SP | =SUBSTITUIRB(A3;5;4;"0099") | REF-0099-SP |
| A4 | COD-ABC-01 | =SUBSTITUIRB(A4;5;3;"XYZ") | COD-XYZ-01 |
| A5 | ITEM-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 Original | Fórmula | Resultado |
|---|---|---|
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órmula | Bytes substituídos | Resultado |
|---|---|---|
=MUDAR("東京ABC";1;2;"XX") | Substitui os 2 primeiros caracteres | XXABC |
=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 Original | Fórmula | Resultado |
|---|---|---|
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_inicialounúm_bytesrecebem 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.
Faça login para participar. Entrar ou Criar conta.





