Notifications
Clear all

Consulta entre duas tabelas com códigos não coincidentes

6 Posts
2 Usuários
0 Reactions
1,462 Visualizações
(@saulo-slm)
Posts: 0
New Member
Topic starter
 

Boa tarde Pessoal,

Estou com um problema muito sério no Excel e que não achei uma solução.

Tenho duas tabelas no Excel. A "Dados" e a "Informações"

A tabela "Dados" tem uma lista de códigos. Esses códigos tem sempre 8 (oito) algarismos, por exemplo, 38089329.

A tabela "Informações" tem apenas alguns dados, nem sempre com 8 algarismos, contendo informações, que eu preciso trazer para a tabela "Dados"

Exemplo: A tabela "Informações" tem 3808 - Monofásicos. Então eu preciso que a informação "Monofásicos" vá para a tabela "Dados" em todos os produtos que comecem (comecem e não que contenham) com os algarismos 3808: 38081020, 38089051, 38083520, etc.

Exemplo: A tabela "Informações" tem 843230 - Substituição Tributária. Então eu preciso que a informação "Substituição Tributária" vá para a tabela "Dados" em todos os produtos que comecem (comecem e não que contenham) com os algarismos 843230: 84323020, 84323050, 84325896, etc.

Como fazer uma fórmula pra isso?

Segue a tabela em anexo.

 
Postado : 16/01/2015 4:19 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Saulo

A tua planilha não bate com a tua descrição, pois a planilha "Dados" não tem sempre código com 8 algarismo, e é ela que contém as informações.

E não existe planilha "Informações" e sim planilha "códigos" e é nela que estão os códigos com 8 algarismo.

[]s

 
Postado : 16/01/2015 7:16 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Com formula não sei se é possível, mas por VBA/Macro

Sub Compara()
Dim iniSCod As String, sCod As String
Dim strDados As Worksheet, strCodigos As Worksheet
Set strDados = Sheets("Dados")
Set strCodigos = Sheets("Codigos")
For x = 3 To strDados.Cells(Cells.Rows.Count, "B").End(xlUp).Row
    For y = 3 To strCodigos.Cells(Cells.Rows.Count, "B").End(xlUp).Row
        iniSCod = Left(strCodigos.Cells(y, "B"), Len(strDados.Cells(x, "B")))
        sCod = strDados.Cells(x, "B")
        If iniSCod = sCod Then
            strCodigos.Cells(y, "C") = strDados.Cells(x, "C")
        End If
    Next
Next
MsgBox "Concluido"
End Sub
 
Postado : 17/01/2015 7:34 am
(@saulo-slm)
Posts: 0
New Member
Topic starter
 

Desculpe, eu errei no momento de citar o nome das planilhas.

A planilha "Dados" tem as informações que eu quero passar para a planilha "códigos". Abaixo vou retificar o erro em todo o texto:

Tenho duas tabelas no Excel. A "Dados" e a "Códigos"

A tabela "Códigos" tem uma lista de códigos. Esses códigos tem sempre 8 (oito) algarismos, por exemplo, 38089329.

A tabela "Dados" tem apenas alguns códigos de referencia, nem sempre com 8 algarismos, contendo informações, que eu preciso trazer para a tabela "Códigos" no campo Observação.

Exemplo: A tabela "Dados" tem 3808 - "Alíquota Zero - Defensivos agropecuários 38.08 Lei nº 10.925/2004, art. 1º, II"

Então eu preciso que a informação "Alíquota Zero - Defensivos agropecuários 38.08 Lei nº 10.925/2004, art. 1º, II" vá para a tabela "Códigos" em todos os produtos que comecem (comecem e não que contenham) com os algarismos 3808: 38081010, 38081029, 38083022, etc.

Exemplo: A tabela "Dados" tem 843230 - Substituição Tributária - Semeadores, 8432.30 MP nº 2.158-35, de 2001, art. 43. Então eu preciso que a informação "Substituição Tributária" vá para a tabela "Códigos" no campo observação, em todos os produtos que comecem (comecem e não que contenham) com os algarismos 843230: 84323000, 84323090, etc.

E assim por diante, em todos os códigos da tabela Dados.

Como fazer uma fórmula pra isso?

Obrigado.

 
Postado : 19/01/2015 6:44 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Boa tarde Saulo

Você baixou a planilha que o amigo Reinaldo anexou?

Pelo que eu entendi da tua dúvida, a planilha dele faz exatamente o que vc deseja, só que como usa programação VBA não possuí fórmulas.

Para testar, apague os dados da coluna C da planilha códigos e clique no botão Verifica que fica na parte superior da tabela.

[]s

 
Postado : 19/01/2015 10:20 am
(@saulo-slm)
Posts: 0
New Member
Topic starter
 

Boa tarde Reinaldo e Patropi,

Não tinha visto a resposta de Reinaldo.

Baixei a planilha com a macro e ficou sensacional. Ficou melhor do que eu esperava.

Muito obrigado! Muito mesmo.

:D

 
Postado : 19/01/2015 11:11 am