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

  • Membros

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
  • Membros
  • 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

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

  • 0
  • Membros

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
  • Membros

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
  • Membros

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
  • Gostei 1
  • Obrigado(a) 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
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
  • Membros

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...