Notifications
Clear all

Dúvida/ Buscar formatação padrão de caracteres em uma célula

14 Posts
2 Usuários
0 Reactions
1,681 Visualizações
(@zgoda)
Posts: 0
New Member
Topic starter
 

Preciso condicionar uma célula a mostrar uma mensagem de erro caso a célula destino esteja fora do formato : "letra""número""número""número""letra""letra""-""-""letra""número" e se outra célula na mesma linha for "produto epecífico" como : L123N--C1

Como se fosse assim: SE (A2 = PRODUTO1; ENTÃO B2 DEVE ESTAR NO FORMATO("letra""número""número""número""letra""letra""-""-""letra""número")); SE A2 = PRODUTO2; ENTÃO B2 DEVE ESTAR NO FORMATO("letra""número""número""número""letra""letra"); SE NÃO = ERRO)

Alguém sabe como que eu faço isso?

 
Postado : 30/05/2014 1:58 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Vc quer validar a célula, ou vc quer uma fórmula para ficar ao lado?

Um modelo da planilha ajudaria a entender o teu problema.

 
Postado : 30/05/2014 2:24 pm
(@zgoda)
Posts: 0
New Member
Topic starter
 

Segue o anexo com o exemplo da dúvida apresentada.

É uma fórmula para aparecer do lado que surja a mensagem de "ok" ou "incorreto"

 
Postado : 02/06/2014 6:36 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Coloque esta fórmula em C2 e arraste.

=SE(B2="";"";SE(OU(E(NÚM.CARACT(B2)=10;NÃO(ÉNÚM(--ESQUERDA(B2;1)));ÉNÚM(--EXT.TEXTO(B2;2;3));NÃO(ÉNÚM(--EXT.TEXTO(B2;5;2)));EXT.TEXTO(B2;7;2)="--";NÃO(ÉNÚM(--EXT.TEXTO(B2;9;1)));ÉNÚM(--DIREITA(B2;1)));E(NÚM.CARACT(B2)=6;NÃO(ÉNÚM(--ESQUERDA(B2;1)));ÉNÚM(--EXT.TEXTO(B2;2;3));NÃO(ÉNÚM(--EXT.TEXTO(B2;5;2)))));"OK";"Incorreto"))

As informações de B2 e B5 não estão corretas pois tem um espaço sobrando. Retire o espaço e vai ver que o resultado ficará "OK".

 
Postado : 02/06/2014 10:21 am
(@zgoda)
Posts: 0
New Member
Topic starter
 

Então... achei que descobrindo a lógica da fórmula eu conseguiria aplicar na minha planilha, porém superestimei a minha capacidade de compreender o excel, rsrsrs... estou colocando em anexo a planilha que eu vou colocar tal fórmula... porém o caso é o seguinte:

Na célula R2, que irá aparecer se é erro ou correto, a fórmula deve estar ali, creio eu... ou uma parte dela para resultar no que quero... a partir da linha 4 são os valores raw que seriam inseridos para verificação.

na célula N4 está o produto a ser verificado e na R4 o lote. Na guia "LOTE" está a tabela de verificação do produto e do formato padrão de cada lote. o desafio está em justamente procurar o valor de N4 na tabela da guia "LOTE" e verificar se bate com o formato do lote referente a tal produto que está na mesma linha naquela tabela.

Acho que agora consegui explicar o drama direito, rsrsrs... vai em anexo a planilha original.

 
Postado : 02/06/2014 1:52 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Ok, veja se é assim.

 
Postado : 02/06/2014 2:23 pm
(@zgoda)
Posts: 0
New Member
Topic starter
 

Reparei que ele está apenas validando alguns valores, destaquei em amarelo na guia "Lote" os formatos que ele está trazendo como errado, quando o produto for correspondente ao lote ele deve trazer como correto. Todos aqueles formatos de lotes estão corretos de acordo com cada produto. eles teriam que ser validados de acordo com o produto relacionado.

 
Postado : 03/06/2014 5:15 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Todos estes casos em amarelo estão fora do padrão que vc apontou no primeiro post:

Como se fosse assim: SE (A2 = PRODUTO1; ENTÃO B2 DEVE ESTAR NO FORMATO("letra""número""número""número""letra""letra""-""-""letra""número")); SE A2 = PRODUTO2; ENTÃO B2 DEVE ESTAR NO FORMATO("letra""número""número""número""letra""letra"); SE NÃO = ERRO)

Ou eu não entendi o que vc quer validar.

 
Postado : 03/06/2014 7:34 am
(@zgoda)
Posts: 0
New Member
Topic starter
 

Ahh, agora eu entendi a lógica da sua fórmula, se bem que vai ficar bem trabalhoso eu acho dessa maneira. Tentei colocar o texto aqui no campo de mensagem , porém o texto ficou muito comprido, estava dando um bug no fórum na hora de colocar a fórmula. estou mandando um txt em anexo para explicitar melhor o que quero... como disse provavelmente vai ficar MUITO trabalhoso, se tiver um método melhor, fique a vontade. Desculpa pelo incômodo.

 
Postado : 05/06/2014 6:57 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Eu não sei se haveria outra forma (a não ser por VBA, talvez).

Porém, pelo txt que vc mandou, existem padrões que facilitam a coisa. Vou ver depois pra vc e te dou um retorno.

 
Postado : 05/06/2014 7:48 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Amigo,

Como eram muitos casos, era mais fácil criar uma função UDF.

Veja no anexo, abs.

 
Postado : 06/06/2014 1:57 pm
(@zgoda)
Posts: 0
New Member
Topic starter
 

Você pode me ajudar a entender a lógica desta fórmula?

 
Postado : 06/06/2014 2:04 pm
(@gtsalikis)
Posts: 2373
Noble Member
 

Amigo, não sei se vai ser muito útil eu te explicar.

Aqui tem uma explicação muito boa sobre ÍNDICE + CORRESP:
viewtopic.php?f=20&t=290

Eu utilizei essas 2 funções para localizar o código padrão que vc colocou na planilha lotes.

Depois disso, é uma função que eu criei que compara cada caractere, para verificar se está batendo letra com letra, número com número e os sinais.

 
Postado : 06/06/2014 2:11 pm
(@zgoda)
Posts: 0
New Member
Topic starter
 

Uma hora eu sento e tento entender rsrsrs.

Muito obrigado pela ajuda!!!

 
Postado : 06/06/2014 2:37 pm