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