Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal bom dia,
Tenho um gráfico que conta as Parts ao longo do tempo, e minha dimensão é calculada, sendo ela:
= if ( not isNull ( [Tarefa] ) and [Tarefa] <> '' , Date ( [Mes_Falha] , 'MMM/YYYY' ) )
Pois preciso contar as Parts somente quando contém algo na tarefa (ou não é nula ou não é vazia)
Expressão: Count ( Parts )
Porém, fazendo assim na dimensão, os meses acabam ficando duplicados, como por exemplo:
Em contrapartida, dessa maneira consigo Classificar por valor numérico e atende a ordem cronológica.
Tentei alterar a dimensão para:
= if ( not isNull ( [Tarefa] ) and [Tarefa] <> '' , text ( Date ( [Mes_Falha] , 'MMM/YYYY' ) ) )
Isso resolve meu problema de agregação, mas não consigo ordenar a dimensão de maneira correta.
Tentei fazer um match dos valores na Classificação por Expressão mas não deu certo!
Poderiam me ajudar?
Paulo.
Senhores, volto a comentar aqui para agradecer a atenção e compartilhar a solução, talvez não a mais adequada mas funcional, pois é algo que estava precisando com uma certa urgência.
Na criação do campo Mes_Entrega, deixei de utilizar o comando Date() para evitar os dados embutidos, fiz da seguinte maneira:
Date#(Month([T-Zero]) &'/'& Year([T-Zero]), 'MMM/YYYY') as Mes_Entrega
Utilizei as funções Month() e Year() para ler apenas mês e ano da data completa, concatenei uma barra no meio e fiz a interpretação da entrada de texto através do Date#(). Não sei dizer o por que de ter funcionado com o Date#() e não com o Date(), talvez pelo fato da entrada do primeiro ser texto e a do segundo numérica.
Assim as duplicatas do Mes_Falha foram removidas, e como ficou formatado como um campo de data pude classificar em ordem cronológica sem problemas.
Reitero o agradecimento pela atenção, abraço!
Paulo, lembro desse seu problema...
Faça um teste:
Mantenha como dimensão [Mes_Falha] - sem o if feito acima.
Como expressão use o seguinte:
Count(if(Not IsNull([Mes_Falha]),Tarefa)
Daí seu problema de classificação deve cessar.
Imagino que seu mês esteja duplicando pois sua dimensão de data retorna vários valores.
Exemplo:
Se você tiver um calendário com várias datas
01/01/2018
02/01/2018
03/01/2018
04/01/2018
Se eu fizer a dimensão em cima desses valores, apenas formatando a data como você está fazendo irá "multiplicar" os valores. Na verdade está correto, pois há valores diferentes de datas, apenas formatados diferente.
É necessário criar uma data única para utilizar como dimensão de mês.
Usando o código abaixo:
load
*,
MonthStart(Data) as MesAno;
Load * Inline
[
Data,Valor
01/01/2018,1
01/04/2018,3
01/05/2018,4
01/06/2018,5
];
A dimensão MonthStart(Data) as MesAno me retorna apenas um valor com a soma de todos.
O gráfico da direita apresenta a dimensão de mês com um único valor, enquanto o da esquerda está próximo do que você está fazendo.
Espero ter ajudado.
Felipe.
É então, eu achei que tinha conseguido resolver pois os valores inicias pareciam estar ok, mas depois de arrastar a barra de rolagem vi que não..
A respeito da sua sugestão, o que preciso verificar se não é nulo, e também se não está vazio ( " " ) é o campo tarefa.
Coloquei a dimensão calculada apenas :
Date ( [Mes_Falha] , 'MMM/YYYY' )
E na expressão utilizei
Count ( if ( Not isNull ( Tarefa ), Tarefa)
mas nada feito
Faltou um parenteses aqui:
Count ( if ( Not isNull ( Tarefa ), Tarefa))
Felipe, obrigado pela resposta!
Não tenho muito conhecimento teórico de Qlik, mas vejamos se consigo te explicar a minha realidade:
Tenho um campo de Entrega do produto (data)
Ex:
Entrega
07/2016
04/2001
04/2006
E para cada produto tenho um campo que me diz o mês de falha deste produto, porém este valor varia de 1 a 240 para todo produto, então consequentemente os valores de Mes de Falha irão se repetir, por exemplo:
Entrega Mes_Previsao Mes_Falha
05/2008 4 09/2008
08/2001 5 01/2002
01/2008 8 09/2008
Os registros são diferentes, pois são produtos com IDs diferentes e datas de entrega diferentes, mas em determinada previsão, eles irão falhar na mesma data, e preciso agregar esses valores para ter a visão de quantos produtos irão falhar naquela determinada data...
Consegui esclarecer?
Aqui eu errei, mas no Qlik eu tinha colocado hehehe....
A dimensão continou duplicada
Daí pode fazer,
Count(Aggr(Count ( if ( Not isNull ( Tarefa ), Tarefa),[Mes_Falha]))
Entendi sua necessidade Paulo,
Porém o que pode estar acontecendo é que a sua data de onde você deriva os campos Entrega e Mes_Falha, pode acontecer de serem dias distintos, fazendo com que os campos tenham valores em formato numérico diferentes.
Os campos de data no qlik são representados por texto e número, sendo assim, as suas datas podem apresentar o mesmo texto mas não o mesmo número, sendo assim diferentes.
Exemplo
Data: 01/01/2018 e 02/01/2018
Fazendo um campo data deles dois com o formato mês ano eles ficariam em representação dupla
01/01/2018 - 43101
02/01/2018 - 43102
E quando você formata o campo de data para apenas conter o mês ano, o Qlik fará dois campos em cima do número, apesar de ele ser igual textualmente.
Você consegue disponibilizar o arquivo para poder dar uma olhada?
Felipe.
Ah, entendi!! De forma embutida, são registros diferentes...
Deve ser por isso que transformando para texto, as duplicatas eram removidas, porém ai eu não conseguia ordenar de maneira correta.. Seria viável converter para texto como:
= if ( not isNull ( [Tarefa] ) and [Tarefa] <> '' , Text ( Date ( [Mes_Falha] , 'MMM/YYYY' ) ) )
E aplicar uma classificação através de match ou alguma solução de expressão?
Posso disponibilizar sim, segue anexo