Ir para conteúdo
  • 0

Cruzamento Avançado Entre 2 Tabelas


14alex25

Pergunta

  • Alunos

Olá, comunidade!

Estamos com um desafio de saber, a partir de uma relação de clientes contatados via chamada telefônica, cruzar com uma tabela de vendas para medir conversão de vendas dos atendentes.

Nós temos duas tabelas:

ft_contato  que lista todas as ligações realizadas para uma base de clientes:

image.png.66db9c36e5bc1d40cd4afdca95523af9.png

ft_vendas  que é uma tabela de vendas comum: 

image.png.9f75cc6e8f20a96ac0a7f029c6a12435.png

Nossa regra de negócio é que o atendente que contatar um cliente e este realizar uma compra em até 30 dias da ligação, esta venda conta para ele.

Para realizar esta contabilização, levamos em consideração tanto o Telefone quanto o CPF do cliente.

Então, caso o Telefone da ft_contato seja localizado na ft_vendas e esteja dentro do intervalo de data de 30 dias, então esta venda é contabilizada para o atendente, 

da mesma forma que, caso o CPF do cliente seja localizado na ft_vendas e esteja dentro do intervalo de data de 30 dias, então esta venda também é contabilizada para o atendente.

Podem ocorrer casos em que o Telefone e/ou o CPF do cliente não sejam os mesmos ao comparar uma tabela com a outra, por vários motivos (um deles é o cliente ter alterado a titularidade do Telefone, ou outros motivos). Por isso não dá para realizar uma Mescla com 2 parâmetros (utilizando CPF e Telefone juntos como chave)

 

Gerando, ou não, uma terceira tabela resultante:

image.png.9bf6202388a6af923fd291bf45b96b16.png

 

Também existiria a possibilidade de buscar dados da venda para a tabela de contato, utilizando a linguagem M, mas não conseguimos.

Exemplo Resultado esperado Cruzamento Linguagem M.xlsx

Editado por 14alex25
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos

Boa Noite, @14alex25!

 

Tente a utilização do seguinte código alterando a fonte:

let
    Fonte = Excel.Workbook(File.Contents("C:\Users\vitor\Downloads\Exemplo Resultado esperado Cruzamento Linguagem M.xlsx"), null, true),
    ft_vendas_Sheet = Fonte{[Item="ft_vendas",Kind="Sheet"]}[Data],
    #"Cabeçalhos Promovidos" = Table.PromoteHeaders(ft_vendas_Sheet, [PromoteAllScalars=true]),
    #"Tipo Alterado" = Table.TransformColumnTypes(#"Cabeçalhos Promovidos",{{"pedido", type text}, {"telefone", Int64.Type}, {"cpfCliente", Int64.Type}, {"dataVenda", type date}, {"grupoEstoque", type text}, {"valor", Int64.Type}, {"vendedor", type text}}),
    #"Consultas Mescladas" = Table.NestedJoin(#"Tipo Alterado", {"telefone"}, ft_contato, {"telefone"}, "Tel", JoinKind.LeftOuter),
    #"Consultas Mescladas1" = Table.NestedJoin(#"Consultas Mescladas", {"cpfCliente"}, ft_contato, {"cpfCliente"}, "CPF", JoinKind.LeftOuter),
    #"Personalização Adicionada" = Table.AddColumn(#"Consultas Mescladas1", "Personalizar", each Table.Distinct(Table.Combine({[Tel], [CPF]}))),
    #"Colunas Removidas" = Table.RemoveColumns(#"Personalização Adicionada",{"Tel", "CPF"}),
    #"Personalizar Expandido" = Table.ExpandTableColumn(#"Colunas Removidas", "Personalizar", {"nomeCliente", "dataContato", "atendente"}, {"nomeCliente", "dataContato", "atendente"}),
    #"Linhas Filtradas" = Table.SelectRows(#"Personalizar Expandido", each ([dataContato] >= Date.AddDays([dataVenda], -30))),
    #"Personalização Adicionada1" = Table.AddColumn(#"Linhas Filtradas", "diferença de datas", each Duration.Days([dataVenda] - [dataContato]), Int64.Type)
in
    #"Personalização Adicionada1"

 

Espero que ajude.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @14alex25 tudo bem? 😃

Esperamos que você tenha encontrado a solução que tanto desejava!!

Caso alguma resposta tenha ajudado, você pode marcá-la como Solução . Com isso o tópico poderá ser fechado! 

Maas...

Pode acontecer de você receber uma resposta que não é 100% do que você esperava. Mesmo assim, se ela o ajudou de alguma forma para que você mesmo conseguisse chegar à solução, conte como você fez isso e marque como a melhor resposta. 😉

 

Obrigado por tonar nossa comunidade #INCOMPARÁVEL!!

Att Julian Salcedo I Community Manager Xperiun

 

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...