Mais uma dúvida que chegou através dos comentários aqui do site. Nele o leitor dizia que tinha campos com diversos dígitos de um código de barra. Porém, ele queria extrair para uma outra célula somente os últimos 5 que eram aqueles correspondentes ao valor do produto. Como fazer?

Eu te ensino a partir de agora:

Para exemplificar o processo vamos nos basear em um exemplo como o dele. Imagine que você tenha uma planilha onde estão listados códigos de uma negociação. Nosso código será composto de 4 campos e 21 dígitos: VVV-DDDDDDDD-XXXXX-PPPPP, onde:

  • VVV - código do vendedor
  • DDDDDDDD - data da compra
  • XXXXX - número do pedido
  • PPPPP - preço

Agora é só simularmos os cenários onde aplicaríamos estas buscas personalizadas. Independentemente de qual a parte que iremos isolar, teremos 2 modos de o fazer: através da função =Esquerda(texto;núm. caracteres), =Direita(texto;núm. caracteres) ou =Ext.Texto(texto;posição inicial;núm. caracteres).

As 3 fórmulas têm a mesma lógica, porém a aplicação de cada uma dependerá da parte do texto que você quer isolar. Se o texto a ser pinçado estiver colado na esquerda, use a =Esquerda(), se tiver colado à direita, use a =Direita() e se não estiver nas pontas use =Ext.Texto().

Vamos ver cada uma delas na prática, mas primeiro confira como estão dispostos os dados em nossa planilha:

Função =Esquerda()

Vamos começar imaginando que nosso usuário quer preencher a primeira coluna em branco da imagem acima e separar apenas o código do vendedor.
Como a parte do código referente ao vendedor é a primeira "coisa" da esquerda à direita, vamos usar a função esquerda.

De acordo com a sua sintaxe =Esquerda(texto;núm. caracteres) vamos substituir "texto" pela célula onde está o código (B3 no nosso primeiro exemplo) e "caracteres" por quantos caracteres desejamos pegar dessa sequência (3 caracteres correspondem ao código do vendedor).

Assim é só colarmos em D3 a fórmula =Esquerda(B3;3)

Função =Direita()

Como você já deve estar imaginando, para usar a fórmula =Direita() e recuperar o preço que está colado no final da linha é só usar =Direita(B3;5) em G3. Você verá que o valor resultante será 4869. Penso então que você vai querer separar os centavos do real e colocar o "R$" no início certo, porém, temos um problema aí.

Se você tentar inserir a vírgula ou formatar como valor de dinheiro não irá conseguir. Tudo porque, como disse lá em cima, nosso código completo tem 21 dígitos.

Não entendeu? Seguinte:o Excel só comporta 15 dígitos. Se eu tentasse inserir meus 21 dígitos ele colocaria 0 a partir do 16º dígito em diante. Para corrigirmos isto eu usei um truque: Coloquei um apóstrofo () no início da célula do código. Se você não enxergou o apóstrofo nos exemplos acima, não se preocupe, pois ele fica invisível e só aparece caso selecionemos a célula.

Ele está ali para mostrar ao Excel que aquela célula é um texto e não um número, assim o programa vai aceitar quantos números quisermos e não somente 15 dígitos como antes. O lado negativo dese truque é que, agora, a célula é uma célula de texto e, por conta disso, não pode ter seus resultados transformados em valor dinheiro (ou data, como você verá adiante).

Temos então qure fazer essa formatação na "marra". Para resolver o problema da vírgula é muito fácil, é só colocar uma divisão por 100 no final, ficando assim: =Direita(B3;5)/100, afinal os centavos nada mais são do que 100 partes de 1 real.

Agora, se quisermos adicionar o R$ ao início é um pouco mais complicado. Teremos que utilizar a função concatenar que junta diferentes textos. Assim é só informar que desejamos juntar o "R$" ao valor da célula.

Não vou me alongar nesta explicação pois temos uma aula dedicada ao =Concat() aqui que eu tenho certeza que você irá conferir e aprender. A fórmula usada caso você queira incluir então o R$ será =Concatenar("R$ ";Direita(B3;5)/100). Veja como ficou após nossas alterações:

Função =Ext.Texto()

Ok, para os valores marginais já vimos que é fácil, mas e quanto àqueles que estão no meio? Para pegar as datas vamos usar a fórmula =Ext.Texto() onde é possível indicar de onde o Excel começara a contar e quantos caracteres ele irá pinçar a partir dali.

A fórmula a ser usada é =Ext.Texto(B3;4;8) onde o primeiro argumento é a célula analisada, depois o número de dígitos a partir do qual o Excel começará a pegar os dados (conta-se da esquerda para a direita) e quantos dígitos a partir dali ele irá pegar. Só isso. Repare que os valores referentes à data começam no 4º dígito e tem o total de 8.

Da mesma forma que no caso do valor monetário e da vírgula, você terá de inserir as barras posteriormente. Só precisará tratar a célula.

No nosso exemplo eu pensei na seguinte maneira: Pegar somente os dígitos referentes aos dias e então concatenar com uma barra, depois concatenar este resultado com os caracteres do mês, depois concatenar com uma barra novamente e então concatenar com o ano. Na prática a fórmula usada foi =Ext.Texto (B3;4;2)&"/"& Ext.Texto (B3;6;2)&"/"& Ext.Texto (B3;8;4)

E nosso último campo a ser preenchido, o código da venda, terá a mesma lógica da data que acabamos de ver. Usaremos Ext.Texto começando a contar do primeiro caractere do código e por quanto ele irá pegar os valores

Após uma breve olhada você já sabe que a fórmula a ser inserida é =Ext.Texto (B3;12;5)

Agora que está tudo certo é só usar a alça de preenchimento e replicar as fórmulas inseridas às linhas de baixo. O resultado será esse:

Tem algum pedido de tutorial também? Deixe um comentário ou mande um e-mail para [email protected]