Ir para conteúdo
  • 0

Ligar ID somente por um pedaço da string


fabhbarbosa
Ir para solução Solucionado por fabhbarbosa ,

Pergunta

  • Alunos

Boa tarde pessoal,

Me apareceu uma demanda que não faço ideia como relacionar.

Eu tenho um ID de um produto com vários caracteres. Por exemplo AAAA01020304 na minha tabela dimensão.

Na minha tabela fato, eu tenho esse ID AAAA0203 - ou seja, a ligação dele, deve ser pelo AAAA e contém o 02 e 03

Montei um arquivo comentado para exemplificar melhor, mas basicamente, tenho que identificar pelo trechos da stringAcharpedaçostring.xlsx

Desde já agradeço a atenção

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
8 horas atrás, Vitor Peralva disse:

Olhando superficialmente o seu problema, me parece que ele poderia ser resolvido com listas, mas as regras de negócio não me parecem estar bem definidas.

Exemplo: Você informa que o ID INJ99AB65TB3MG deveria ser B2 ou C3 ao argumento de que "pois é mandatório somente o opcional B3MG", veja que o modelo A1 também possui o opcional B3MG.

Talvez existam opcionais que são "obrigatórios" em determinado tipo de configuração e você teria que identificar isto.

Além disso, para ter uma ligação com duas linhas da dimensão e mesclar estes dados, você estaria aumentando o número de linhas da fato.

Não sei qual o seu objetivo, se seria levantar as possibilidades que podem ser ofertadas ao cliente, por exemplo, mas não seria algo tão simples de fazer, em especial, se você não possui muito conhecimento de Power Query.

Obrigado pela ajuda Vitor.

Depois de algumas noites em claro, consegui achar uma solução comparando listas com a Função List.ContainsAll 

Estou adicionando o PBIX com o resultado.

Desde já agradeço a todos pela ajuda e tempo dedicado nesse tópico.

Amostra.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa tarde Fábio. Tudo bem amigo?

Eu realmente desconheço essa possibilidade.

Talvez o ideal seria ajustar o ID na dimensão, fazendo algumas etapas na coluna dele:

1 - separar letras e números;

2 - na coluna de números resultantes tirar os 2 primeiros e os 2 últimos caracteres

3 - agrupar novamente a coluna de letras com essa de números.

Acredito que possa ter inclusive formas de fazer isso com funções M - mas não sou especialista....rsrrsrs

Mas sua dúvida é bem legal. Vou acompanhar aqui pra ver se algum colega especialista tem alguma alternativa para relacionar diretamente sem esses tratamentos.

Espero que tenha ajudado de alguma forma.

Sucesso aí amigo.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
23 minutos atrás, Rodrigo R1 disse:

Boa tarde Fábio. Tudo bem amigo?

Eu realmente desconheço essa possibilidade.

Talvez o ideal seria ajustar o ID na dimensão, fazendo algumas etapas na coluna dele:

1 - separar letras e números;

2 - na coluna de números resultantes tirar os 2 primeiros e os 2 últimos caracteres

3 - agrupar novamente a coluna de letras com essa de números.

Acredito que possa ter inclusive formas de fazer isso com funções M - mas não sou especialista....rsrrsrs

Mas sua dúvida é bem legal. Vou acompanhar aqui pra ver se algum colega especialista tem alguma alternativa para relacionar diretamente sem esses tratamentos.

Espero que tenha ajudado de alguma forma.

Sucesso aí amigo.

Grande Rodrigo R1! 

Eu vi alguns vídeos no YouTube e acho que deve ser algum caminho parecido com comparações de listas em M

Também não domino M, mas deve ser esse o caminho. Criar uma lista de CodigoBase + Opcionais e comparar com várias listas de IDs

Tem uma função que chama List.ContainsAll em M, mas não consegui usar.

De qualquer maneira, obrigado pela atenção neste assunto.

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @fabhbarbosa tudo bem?

1- O id existente na fato identifica unicamente cada produto, ou gera duplicidade?

2- Em caso de gerar duplicidade, há algum outro campo que possa ser usado como complemento para identificar o produto?

3- Em caso de não gerar duplicidade, existe algum padrão ou regra nos ids existentes na tabela fato?

Penso similar ao Rodrigo, mas primeiro é necessário entende a regra a ser aplicada para transformar a tabela dimensão, ou até mesmo ajustar a fato, quem sabe até ambas, mas tudo parte do entendimento da necessidade do tratamento. 

 

Anexa uma base para ilustrar melhor como vem a sua fato, tentando contemplar todos os cenários, não precisa ser muitos registros não.

Olhei o seu arquivo, mas ainda estou com algumas dúvidas, por isso a necessidade da base para facilitar.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 19/03/2022 em 07:16, Frank Figueredo disse:

Olá @fabhbarbosa tudo bem?

1- O id existente na fato identifica unicamente cada produto, ou gera duplicidade?

2- Em caso de gerar duplicidade, há algum outro campo que possa ser usado como complemento para identificar o produto?

3- Em caso de não gerar duplicidade, existe algum padrão ou regra nos ids existentes na tabela fato?

Penso similar ao Rodrigo, mas primeiro é necessário entende a regra a ser aplicada para transformar a tabela dimensão, ou até mesmo ajustar a fato, quem sabe até ambas, mas tudo parte do entendimento da necessidade do tratamento. 

 

Anexa uma base para ilustrar melhor como vem a sua fato, tentando contemplar todos os cenários, não precisa ser muitos registros não.

Olhei o seu arquivo, mas ainda estou com algumas dúvidas, por isso a necessidade da base para facilitar.

E aí Frank? Tudo bem sim e com você?

Primeiramente, obrigado pelo suporte nesse assunto.

Sobre as dúvidas, coloquei mais algumas informações no excel para auxiliar e o modelo em PBIX com mais detalhes para entendimento do problema.

Desde já agradeço a ajuda.

Acharpedaçostring v2.xlsx Amostra.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 21/03/2022 em 16:27, fabhbarbosa disse:

E aí Frank? Tudo bem sim e com você?

Primeiramente, obrigado pelo suporte nesse assunto.

Sobre as dúvidas, coloquei mais algumas informações no excel para auxiliar e o modelo em PBIX com mais detalhes para entendimento do problema.

Desde já agradeço a ajuda.

Acharpedaçostring v2.xlsx 17 kB · 3 downloads Amostra.pbix 36 kB · 3 downloads

Olhando superficialmente o seu problema, me parece que ele poderia ser resolvido com listas, mas as regras de negócio não me parecem estar bem definidas.

Exemplo: Você informa que o ID INJ99AB65TB3MG deveria ser B2 ou C3 ao argumento de que "pois é mandatório somente o opcional B3MG", veja que o modelo A1 também possui o opcional B3MG.

Talvez existam opcionais que são "obrigatórios" em determinado tipo de configuração e você teria que identificar isto.

Além disso, para ter uma ligação com duas linhas da dimensão e mesclar estes dados, você estaria aumentando o número de linhas da fato.

Não sei qual o seu objetivo, se seria levantar as possibilidades que podem ser ofertadas ao cliente, por exemplo, mas não seria algo tão simples de fazer, em especial, se você não possui muito conhecimento de Power Query.

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...