Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
aholtenio
New Contributor II

Contar Cliente - Distinct

Pessoal,

Sou extremamente novo no Qlik Sense e ainda estou engatinhando e por isso minha duvida pode parecer besta, mas ainda não consegui uma solução.

Seguinte, eu tenho uma base de dados que contem o codigo dos meus clientes + valor de venda, e um DePara que possue Codigo + Nome cliente.

As duas bases estão conectadas, e preciso contar a quantidade de clientes distintos que realizei vendas, porém,quando uso a formula

=count(distinct [cliente]) ele conta o total de clientes da minha base 'DePara', por exemplo

Base de dados:

  

  

Cliente

Valor Vendas

Cliente A

100

Cliente A

1000

Cliente A

500

Cliente B

10

Cliente B

200

Cliente C

2000

Cliente C

1000

DePara Cliente

Cliente A

Cliente B

Cliente C

Cliente D

Cliente E

Cliente F

Cliente G

Para esse exemplo, a fórmula me retorna 7, ao invés de 3.

Alguém consegue me ajudar?

  Obrigado

Tags (1)
1 Solution

Accepted Solutions
felipedl
Valued Contributor III

Re: Contar Cliente - Distinct

Olá Atila,

Veja a imagem abaixo para entender o que acontece:

Como as duas tabelas estão conectadas, se você fizer count(Distinct Cliente) irá retornar todos os valores distintos do campo Cliente.

Com a expressão count(Distinct ID) onde o campo ID (que é meramente uma cópia do valor que está contido no campo Cliente da tabela Cliente), só irá pegar os campos distintos registrados na tabela Cliente, visto que não está conectada a outra.

Os campos associados geram agregações diferentes, por exemplo, se você desconectar as tabelas, irá resultar no valor 3, ao invés de 7 e ao conectar, o Qlik irá entender os valores possíveis como Cliente como sendo todos os possíveis das duas tabelas.

Sample.png

Usei o seguinte script para gerar a imagem:

x:

load * Inline

[

Cliente,ID,Valor Vendas

Cliente A,Cliente A,100

Cliente A,Cliente A,1000

Cliente A,Cliente A,500

Cliente B,Cliente B,10

Cliente B,Cliente B,200

Cliente C,Cliente C,2000

Cliente C,Cliente C,1000

];

y:

Load * Inline

[

Cliente,Desc

Cliente A,1

Cliente B,2

Cliente C,3

Cliente D,4

Cliente E,5

Cliente F,6

Cliente G,7

];

5 Replies
felipedl
Valued Contributor III

Re: Contar Cliente - Distinct

Olá Atila,

Veja a imagem abaixo para entender o que acontece:

Como as duas tabelas estão conectadas, se você fizer count(Distinct Cliente) irá retornar todos os valores distintos do campo Cliente.

Com a expressão count(Distinct ID) onde o campo ID (que é meramente uma cópia do valor que está contido no campo Cliente da tabela Cliente), só irá pegar os campos distintos registrados na tabela Cliente, visto que não está conectada a outra.

Os campos associados geram agregações diferentes, por exemplo, se você desconectar as tabelas, irá resultar no valor 3, ao invés de 7 e ao conectar, o Qlik irá entender os valores possíveis como Cliente como sendo todos os possíveis das duas tabelas.

Sample.png

Usei o seguinte script para gerar a imagem:

x:

load * Inline

[

Cliente,ID,Valor Vendas

Cliente A,Cliente A,100

Cliente A,Cliente A,1000

Cliente A,Cliente A,500

Cliente B,Cliente B,10

Cliente B,Cliente B,200

Cliente C,Cliente C,2000

Cliente C,Cliente C,1000

];

y:

Load * Inline

[

Cliente,Desc

Cliente A,1

Cliente B,2

Cliente C,3

Cliente D,4

Cliente E,5

Cliente F,6

Cliente G,7

];

aholtenio
New Contributor II

Re: Contar Cliente - Distinct

Felip, obrigado pela ajuda.

Daria pra fazer esse calculo, sem criar a coluna adicional?

felipedl
Valued Contributor III

Re: Contar Cliente - Distinct

Sem criar o novo campo, você teria que desassociar as tabelas mesmo.

Felipe.

aholtenio
New Contributor II

Re: Contar Cliente - Distinct

Ah entendi.

Sem problemas então.

De qualquer maneira, funcionou.

Obrigado

marcelvinicius
Contributor III

Re: Contar Cliente - Distinct

Bom dia amigo,

Por gentileza, marcar a resposta como correta para que possa fechar o tópico e quem também estiver com dúvida possa saber como resolver.

Obrigado