Ir para conteúdo
  • 0

Como contar cnpj em comum com outros clientes


André Luiz Zambuzi
Ir para solução Solucionado por Erick Oliveira ,

Pergunta

  • Alunos

Tenho uma tabela com notas , onde nesta consta o cnpj do pagador e o cnpj do destinatário, preciso ter a informação da qtd de destinatários em comum,  como exemplo se selecionar um cliente especifico ( através do filtro no menu ) que consiga visualizar o total de destinatários deste cliente e quantos são em comuns com os demais clientes da tabela, isto é para poder analisar se este cliente esta trazendo um ponto de entrega diferente do que já temos.

Link para o comentário
Compartilhar em outros sites

9 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Opa André;

Para que a medida funcione você precisa fazer o seguinte (utilizei a mesma nomenclatura do seu arquivo para facilitar):

No modelo o você precisa de uma tabela dimensão com valores unitários de CNPJ pagador, então, no power query precisa ser removido os valores duplicados dos CNPJ:

 

image.png.78ed77bc5ba0e615967fd9aefaf9f69d.png

Os relacionamentos do modelo precisam ficar no seguinte formato com relacionamentos de (1:*) :

image.png.a0bbceffcb4f38087fdcf0b343f8fa5f.png

Onde você precisa, na tabela auxClientes, tornar o relacionamento inativo, quando isso acontecer, a linha do relacionamento no modelo irá ficar pontilhada:

image.png.44e0becbc423d17a5c8c55a48a6cf692.png

 

Uma vez feito isso, a medida abaixo irá retornar a Qtd de notas de CPNJ que tiveram destinatários em comum:

Qtd notas em comum = 
VAR tDestinatarioContexto = VALUES(Base[CNPJ destinatario]) // Tabela de destinatarios para o CNPJ do contexto
VAR tDestinatarioAuxiliar = // Tabela de destinatarios total
CALCULATETABLE(
    VALUES(Base[CNPJ destinatario]),
    ALL(TabPagador), // "Desativa" o relacionamento da Base com a TabPagador
    USERELATIONSHIP(auxClientes[CNPJ Pagador],Base[CNPJ Pagador]) // Ativa o relacionamento da Base com a auxClientes
)
// Retorna uma tabela com destinários em comum entre a tDestinatarioContexto e tDestinatarioAuxiliar
VAR tDestinatariosComum = INTERSECT(tDestinatarioContexto,tDestinatarioAuxiliar) 
// Contar as linhas da tabela retornada
VAR vComum = COUNTROWS(tDestinatariosComum)
RETURN
IF(
    NOT SELECTEDVALUE(TabPagador[CNPJ Pagador]) = SELECTEDVALUE(auxClientes[CNPJ Pagador]),
    vComum
)

E para contar a quantidade de CNPJ basta utilizar a medida abaixo:

Qtd clientes em comum = 
SUMX(
    VALUES(auxClientes[CNPJ Pagador]),
    [Qtd notas em comum]
)

 

Então, para você verificar a quantidade de clientes em comum que o CNPJ selecionado possui, você precisa utilizar a coluna "CNPJ pagador" da tabela TabPagador. E para verificar quem são esses CNPJ em comum, você utiliza a mesma coluna da auxCLientes.

Como contar cnpj em comum com outros clientes.pbix

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Verifique se a solução em anexo lhe atende.

A medida irá buscar fatos com destinatários em comum entre o cliente selecionado e outros demais clientes na tabela dimensão. Ao selecionar um CNPJ pagador na segmentação, a tabela da esquerda irá mostrar quantos clientes em comum tiveram na tabela fato para esse CNPJ, e a tabela da direita irá mostrar quem foram esses clientes em comum.

Como contar cnpj em comum com outros clientes.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa tarde Erick,

Não deu certo, creio que esteja fazendo algo errado.

Fiz um de teste seguindo o mesmo modelo da aplicação que temos, preciso selecionar o cliente pela segmentação , e obter a informação do cliente selecionado a quantidade de clientes destinatários em comum com os demais clientes. Seguindo seu exemplo informando a tabela auxiliar e esta com erro no campo,

Estou anexando o arquivo que criei , caso possa dar uma olhada.

 

teste clientes em comum.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Boa tarde André,

Pelo que vi aqui do seu arquivo aparentemente a solução  do Erick não funcionou apenas por sua tabela "AuxClientes" não estar relacionada com a tabela "Base".

Dessa forma a função USERELATIONSHIP precisa que os campos usados das duas tabelas estejam conectados, fiz a ligação das tabelas no seu arquivo veja se é o resultado que precisa. 

image.png

teste clientes em comum.pbix

Editado por Natan Fratta da Silva
  • Like 1
  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
4 horas atrás, Natan Fratta da Silva disse:

Boa tarde André,

Pelo que vi aqui do seu arquivo aparentemente a solução  do Erick não funcionou apenas por sua tabela "AuxClientes" não estar relacionada com a tabela "Base".

Dessa forma a função USERELATIONSHIP precisa que os campos usados das duas tabelas estejam conectados, fiz a ligação das tabelas no seu arquivo veja se é o resultado que precisa. 

image.png

teste clientes em comum.pbix 1.29 MB · 1 download

muito Obrigado, deu tudo certo.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Para que possa visualizar quais documentos/notas não são comum, como posso fazer com que saia em uma tabela ?

Pois os em comum consigo listar normalmente, mas os que são novos ele sai o total. Neste exemplo abaixo, gostaria de listar nesta tabela "borda azul" quais as notas que são com os novos destinatários.

image.png.380fa6a7f42022e03afad98371501835.png

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