Qlik Community

Qlik Brasil

Announcements
BI & Data Trends 2021. Discover the top 10 trends emerging in today. Join us on Dec. 8th REGISTER
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Contributor III
Contributor III

Tabela/Gráfico não conta valores distintos

Boa noite, pessoal!

 

Criei uma medida no Qlik Sense para que eu consiga saber se um cliente da minha organização está ativo ou inativo baseado em critério de tempo e documento de faturamento. Porém, quando tiro a dimensão de cliente da minha tabela e coloco Estado (UF), Município ou qualquer outro tipo de agrupamento não consigo fazer com que meus resultados saiam agrupados.

Ao deixar a minha dimensão como  Cliente consigo os dados linha a linha, sobre ativos e inativos, e também realizar a contagem em totais apenas na tabela dinâmica.

 

Quando peço para somar a minha medida em um gráfico, contando os valores distintos a fim de saber quantos clientes ativos ou inativos tenho por cidade, estado, etc, a minha tabela me retorna apenas uma soma geral do estado, considerando sempre o último doc de faturamento daquele estado e não somando os valores individuais.

 

Segue exemplo.

 

Neste lado vemos os dados agrupados por estado, marcando ativos com mais de 25 mil.Neste lado vemos os dados agrupados por estado, marcando ativos com mais de 25 mil.Aqui vemos que a mesma medida, quando colocado a dimensão de extratificação como cliente, apresenta valor de ativos em 10 mil, de forma correta.Aqui vemos que a mesma medida, quando colocado a dimensão de extratificação como cliente, apresenta valor de ativos em 10 mil, de forma correta.A medida usada em questão é:

Para Ativo/Inativo

IF((MAX([Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]))>=(TODAY()-120),'ATIVO','INATIVO')

 

Para Ativo

IF((MAX([Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]))>=(TODAY()-120),COUNT(distinct([Cliente emissor da Ordem de Vendas - (VBAK-KUNNR)])),'0')

 

Para Inativo

 

Count(distinct([Cliente emissor da Ordem de Vendas - (VBAK-KUNNR)]))

-

IF((MAX([Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]))>=(TODAY()-120),COUNT(distinct([Cliente emissor da Ordem de Vendas - (VBAK-KUNNR)])),'0')

 

Alguém consegue me ajudar para com que mesmo agrupando os dados por Estado, etc eu consiga dados de forma correta?

 

Obrigado.

3 Replies
Highlighted
Creator
Creator

Olá!

Eu não conheço o seu modelo de dados, mas não seria possível aplicar o teste de Ativo/Inativo no script e criar um campo "flag" que você possa mais facilmente utilizar na visualização?

Na tabela de documento de faturamento, incluir um campo que diga a data da última fatura (pode fazer isso usando max (data da fatura) resident tabela de documento de faturamento group by chave_estrangeira_cliente.

Daí fica fácil já testar... if(today()-novo_campo_data_ultima_fatura >= 120, 0,1) as ind_status_cliente.

Na visualização você pega o ind_status_cliente e coloca nas expressões: Count({$<ind_status_cliente={"1"}>} DISTINCT código do cliente)

 

Qliking since '09
Highlighted
MVP & Luminary
MVP & Luminary

Vandre,

Pelos campos, você usa SAP e normalmente o volume nunca é pequeno......

a ideia do Carlos de fazer no script com certeza dará velocidade. Mas não te dará flexibilidade de escolher algum mês/ano e saber quais eram os clientes ativos/inativos naquele período.  

Outra coisa.  Em agregação, não use o if fora da agragação.     if(A=1,sum(B))  não deve ser usado.  Prefira    sum(  {<A={1}>} B  )

Mas se quiser colocar na expressão (que com alguma mudança - today()  poderia lhe dar flexibilidade para qualquer período escolhido) podes usar a abaixo, que também já deve te dar as quantidades por estado certos... 

 

Count( distinct {<[Data doc.faturamento p/índice de docs.faturamto.e impressão - (VBRK-FKDAT)]={">=$(=today()-120)"}>} [Cliente emissor da Ordem de Vendas - (VBAK-KUNNR)] )

 

 

 

 

 

 

furtado@farolbi.com.br
Highlighted
Contributor III
Contributor III

Afurtado, bom dia!

 

Obrigado pelo retorno. Testei a sua fórmula e ela me retorna resultado 0 para todos os cenários. Seja para a dimensão cliente ou para a dimensão UF.

 

Estava como tabela e retornou zerado, coloquei em tabela dinâmica e continuou zerado.