Qlik Community

Ask a Question

Brasil

Announcements
Join us March 10th, 7 Ways Modern Analytics Can Help You Take Smarter Action. REGISTER NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
thiago_alessand
Contributor III
Contributor III

Cálculo x Hierarquia

Boa tarde,

No Qlik Sense, estou com uma situação que não consigo encontrar uma solução, e recorri a vocês.

Tenho um gráfico de barras onde na Medida é feito um cálculo de produção / quantidade de pessoas para trazer o resultado nas barras. O Divisor da conta, no caso a quantidade de pessoas, é feito conforme a seleção da dimensão em hierarquia. Até aí, tudo bem.

Como dimensão, estou usando a hierarquia Mês/Número da Semana/Dia.

O que acontece é que quando chego na última etapa da hierarquia (quando já selecionei o mês e o número da semana), não é exibido nenhum resultado. E há resultados a exibir. 

Já tentei até mesmo inverter a hierarquia para Mês/Dia/Num Semana, para verificar se era algo relacionado à dimensão do Dia, e o problema continua. Nesse caso, ele exibe os dados relacionados até o Dia, e quando seleciono, para listar os números da semana, não exibe nada.

 

Seguem prints com as seleções e resultados, e o código usado no cálculo para ajudar no entendimento.

  • Etapa 1 da hierarquia: Listando todos os meses

1.PNG

  • Etapa 2 da hierarquia: Listando os números da semana

2.PNG

 

  • Etapa 3 da hierarquia: Listando os dias. (Nesta etapa, mesmo invertendo a hierarquia para Mês/Dia/Num Semana, o resultado é o mesmo que abaixo)3.PNG
  • Código usado no cálculo:

4.PNG

 

IF(WildMatch(CCusto,'EXTRUDADOS','TREFILADOS'),
	SUM({<D3_TM={"010"},D3_LOCAL={"01","80","98"}>}QTDPESO),
    IF(CCusto = 'RESISTENCIAS', SUM({<D3_TM={"010"},D3_LOCAL={"99"}>}QTDPECA),	    
	SUM({<D3_TM={"010"},D3_LOCAL={"01","80","98"}>}QTDPECA)	
))

/

//apenas mês selecionado
IF(GetSelectedCount(Mes) = 1 AND GetSelectedCount(SemanaProducao) = 0, 

(Sum({<TipoTurnover={'HeadCount'}, SitFolha_T-={'A'}>} TOTAL NroFuncionarios)
//(Sum({<TipoTurnover={'HeadCount'}, SitFolha_T-={'A'}>} NroFuncionarios)
+
Sum(EntradaPMCMovimento)
-
Sum(SaidaPMCMovimento))
,

//mês e semana selecionados
IF(GetSelectedCount(Mes) = 1 AND GetSelectedCount(SemanaProducao) = 1, 

(Sum({<TipoTurnover={'HeadCount'}, SitFolha_T-={'A'}>} TOTAL NroFuncionarios)
//(Sum({<TipoTurnover={'HeadCount'}, SitFolha_T-={'A'}>} NroFuncionarios)
+
Sum(EntradaPMCMovimento)
-
Sum(SaidaPMCMovimento))
,
//Sem mês selecionado
(Sum({<TipoTurnover={'HeadCount'}, SitFolha_T-={'A'}>} NroFuncionarios)
//(Sum({<TipoTurnover={'HeadCount'}, SitFolha_T-={'A'}>} NroFuncionarios)
+
Sum(EntradaPMCMovimento)
-
Sum(SaidaPMCMovimento))
))

 

Alguém consegue dar uma luz? Já perdi algumas horas em cima disso, e não consigo evoluir.

 

Agradeço desde já.

3 Replies
Ben-Hur
Contributor
Contributor

Thiago,

no seu DATA LOAD EDITOR, tenta escrever o seguinte SCRIPT lá embaixo:

Coloca o nome da sua "coluna" da data em [SEU_CAMPO_DATA] 

Depois coloca pra rodar normal e tenta fazer o mesmo trabalho com datas.

 

[autoCalendar]:

  DECLARE FIELD DEFINITION Tagged ('$date')

  FIELDS

  Dual(Year($1), YearStart($1)) AS [Year] Tagged ('$axis', '$year'),

  Dual('Q'&Num(Ceil(Num(Month($1))/3)),Num(Ceil(NUM(Month($1))/3),00)) AS [Quarter] Tagged ('$quarter', '$cyclic'),

  Dual(Year($1)&'-Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [YearQuarter] Tagged ('$yearquarter', '$qualified'),

  Dual('Q'&Num(Ceil(Num(Month($1))/3)),QuarterStart($1)) AS [_YearQuarter] Tagged ('$yearquarter', '$hidden', '$simplified'),

  Month($1) AS [Month] Tagged ('$month', '$cyclic'),

  Dual(Year($1)&'-'&Month($1), monthstart($1)) AS [YearMonth] Tagged ('$axis', '$yearmonth', '$qualified'),

  Dual(Month($1), monthstart($1)) AS [_YearMonth] Tagged ('$axis', '$yearmonth', '$simplified', '$hidden'),

  Dual('W'&Num(Week($1),00), Num(Week($1),00)) AS [Week] Tagged ('$weeknumber', '$cyclic'),

  Date(Floor($1)) AS [Date] Tagged ('$axis', '$date', '$qualified'),

  Date(Floor($1), 'D') AS [_Date] Tagged ('$axis', '$date', '$hidden', '$simplified'),

  If (DayNumberOfYear($1) <= DayNumberOfYear(Today()), 1, 0) AS [InYTD] ,

  Year(Today())-Year($1) AS [YearsAgo] ,

  If (DayNumberOfQuarter($1) <= DayNumberOfQuarter(Today()),1,0) AS [InQTD] ,

  4*Year(Today())+Ceil(Month(Today())/3)-4*Year($1)-Ceil(Month($1)/3) AS [QuartersAgo] ,

  Ceil(Month(Today())/3)-Ceil(Month($1)/3) AS [QuarterRelNo] ,

  If(Day($1)<=Day(Today()),1,0) AS [InMTD] ,

  12*Year(Today())+Month(Today())-12*Year($1)-Month($1) AS [MonthsAgo] ,

  Month(Today())-Month($1) AS [MonthRelNo] ,

  If(WeekDay($1)<=WeekDay(Today()),1,0) AS [InWTD] ,

  (WeekStart(Today())-WeekStart($1))/7 AS [WeeksAgo] ,

  Week(Today())-Week($1) AS [WeekRelNo] ;

  DERIVE FIELDS FROM FIELDS [SEU_CAMPO_DATA] USING [autoCalendar] ;

thiago_alessand
Contributor III
Contributor III

Bom dia,

acrescentei o código em todos os scripts que estão envolvidos neste cálculo e o problema permanece =\

thiago_alessand
Contributor III
Contributor III

Percebi que o dividendo está tudo ok.

O problema está no divisor, que sempre carrega 0 no último nível da hierarquia...aí qualquer coisa / 0 = 0, por isso não carrega nada. Mas ainda não descobri o motivo, sendo que se inverter o último nível com o penúltimo da hierarquia, o problema continua apenas no último nível.