Qlik Community

Qlik Brasil

Announcements
Members are not receiving notifications from the community. A bug has been identified and a fix is coming soon.
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Contributor III
Contributor III

Problema com AGGR dentro de IF aninhado

Olá,

bom dia.

Tenho uma tabela dinâmica na qual eu preciso, para cada linha exibir uma expressão diferente, mas todas elas utilizando AGGR, pois para eu ter uma visão mensal, eu preciso pegar os valores de cada quarta-feira. Criei um campo "visao_Semana" com a visão de cada quarta-feira. Nos objetos de texto, nos gráficos está tudo funcionando, mas na tabela dinâmica não, ele funciona no primeiro IF, mas no segundo IF ele zera a expressão. (o item 1 está ok, mas o item 2 aparece zerado)

Capturar4.PNG

Se eu selecionar somente o item 2, aí ele funciona normalmente.

Capturar5.PNG

Há alguma limitação para eu usar AGGR com IF aninhado? Esta parte do meu código está assim:

If(DSC_GRUPO = 'INEFICIÊNCIA',

If(DSC_INDICADOR = '1. Ineficiência Companhia', Num(SUM(AGGR(count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, Unidade=, a070_dscr_status -= {'LOCADO','LOCADO-OV','RESERVA DEDICADA','CORPORATIVO'}>}a009_placa_veiculo)/

      count({<Unidade=, versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}>}a009_placa_veiculo), versao_Semana))  / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '2. Ineficiência Operacional', Num(SUM(AGGR(count(DISTINCT{<Unidade=, versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA'}, indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/

     count({<Unidade=, versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}>}a009_placa_veiculo), versao_Semana)) / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%')

Labels (2)
1 Solution

Accepted Solutions
Highlighted

Faltou adicionar um TOTAL no AGGR, conforme abaixo:

If(DSC_GRUPO = 'INEFICIÊNCIA',

If(DSC_INDICADOR = '1. Ineficiência Companhia', Num(SUM(TOTAL AGGR(count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, Unidade=, a070_dscr_status -= {'LOCADO','LOCADO-OV','RESERVA DEDICADA','CORPORATIVO'}>}a009_placa_veiculo)/

      count({<Unidade=, versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}>}a009_placa_veiculo), versao_Semana))  / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '2. Ineficiência Operacional', Num(SUM(TOTAL AGGR(count(DISTINCT{<Unidade=, versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA'}, indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/

     count({<Unidade=, versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}>}a009_placa_veiculo), versao_Semana)) / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '3. Ineficiência Oper. S/ Transp.', Num(count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, Unidade=, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA','TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'},

    indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/ count({<versao_MesAno = {"$(=MesAno_Extenso)"}, Unidade=, a070_dscr_status -={'TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'},

    a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}>}a009_placa_veiculo) / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '4. Ineficiência Leves', Num(SUM(TOTAL AGGR(count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA','TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'}, Unidade = {'Leves'},

     indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/ count({<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}, Unidade = {'Leves'}>}

     a009_placa_veiculo), versao_Semana)) / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '5. Ineficiência Pesados', Num(count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA','TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'}, Unidade = {'Pesados'},

   indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/ count({<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}, Unidade = {'Pesados'}>}

   a009_placa_veiculo) / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '6. Ineficiência AgroNegócios', Num((count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA','TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'}, Unidade = {'Etanol'},

  indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/count({<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO'}, Unidade = {'Etanol'}>}a009_placa_veiculo))/ Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%')  

   

))))))

,

IF(DSC_GRUPO = 'SLA',

IF(DSC_INDICADOR = 'Indicador 1', 1,

IF(DSC_INDICADOR = 'Indicador 2', 2,

IF(DSC_INDICADOR = 'Indicador 3', 3,

IF(DSC_INDICADOR = 'Indicador 4', 4

)))))

)

View solution in original post

7 Replies
Highlighted

Marcelo, envie uma app de exemplo para facilitar o nosso entendimento

Highlighted
Contributor III
Contributor III

Segue !

Highlighted
Not applicable

Vc precisa colocar no aggr a informação not distinc para que funcione para todas as linhas

exemplo: AGGR(NOT DISTINC SUM(VALOR),MES)

Highlighted
Contributor III
Contributor III

Com o nodistinct fica assim

Capturar6.PNG

Highlighted

Faltou adicionar um TOTAL no AGGR, conforme abaixo:

If(DSC_GRUPO = 'INEFICIÊNCIA',

If(DSC_INDICADOR = '1. Ineficiência Companhia', Num(SUM(TOTAL AGGR(count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, Unidade=, a070_dscr_status -= {'LOCADO','LOCADO-OV','RESERVA DEDICADA','CORPORATIVO'}>}a009_placa_veiculo)/

      count({<Unidade=, versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}>}a009_placa_veiculo), versao_Semana))  / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '2. Ineficiência Operacional', Num(SUM(TOTAL AGGR(count(DISTINCT{<Unidade=, versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA'}, indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/

     count({<Unidade=, versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}>}a009_placa_veiculo), versao_Semana)) / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '3. Ineficiência Oper. S/ Transp.', Num(count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, Unidade=, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA','TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'},

    indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/ count({<versao_MesAno = {"$(=MesAno_Extenso)"}, Unidade=, a070_dscr_status -={'TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'},

    a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}>}a009_placa_veiculo) / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '4. Ineficiência Leves', Num(SUM(TOTAL AGGR(count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA','TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'}, Unidade = {'Leves'},

     indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/ count({<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}, Unidade = {'Leves'}>}

     a009_placa_veiculo), versao_Semana)) / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '5. Ineficiência Pesados', Num(count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA','TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'}, Unidade = {'Pesados'},

   indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/ count({<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO','LOCADO-OV','RESERVA DEDICADA'}, Unidade = {'Pesados'}>}

   a009_placa_veiculo) / Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%'),

If(DSC_INDICADOR = '6. Ineficiência AgroNegócios', Num((count(distinct{<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status -= {'DISPONÍVEL PARA RELOCAÇÃO','RESERVA DEDICADA','TRANSPORTE DEVOLUCAO','TRANSPORTE OPERACIONAL'}, Unidade = {'Etanol'},

  indicador_frota = {'Operação','Reserva'}>}a009_placa_veiculo)/count({<versao_MesAno = {"$(=MesAno_Extenso)"}, a070_dscr_status = {'LOCADO'}, Unidade = {'Etanol'}>}a009_placa_veiculo))/ Count({<versao_MesAno = {"$(=MesAno_Extenso)"}>}DISTINCT versao_Semana), '#.##0,00%')  

   

))))))

,

IF(DSC_GRUPO = 'SLA',

IF(DSC_INDICADOR = 'Indicador 1', 1,

IF(DSC_INDICADOR = 'Indicador 2', 2,

IF(DSC_INDICADOR = 'Indicador 3', 3,

IF(DSC_INDICADOR = 'Indicador 4', 4

)))))

)

View solution in original post

Highlighted

Segue QVW em anexo

Highlighted
Contributor III
Contributor III

Perfeito Yuri, funcionou.

Obrigado.