Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
mdfernan
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
nicolett_yuri

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
nicolett_yuri

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

mdfernan
Contributor III
Contributor III
Author

Segue !

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)

mdfernan
Contributor III
Contributor III
Author

Com o nodistinct fica assim

Capturar6.PNG

nicolett_yuri

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

)))))

)

nicolett_yuri

Segue QVW em anexo

mdfernan
Contributor III
Contributor III
Author

Perfeito Yuri, funcionou.

Obrigado.