7 Replies Latest reply: Jun 7, 2016 1:52 PM by MARCELO Fernandes RSS

    Problema com AGGR dentro de IF aninhado

    MARCELO Fernandes

      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%')

        • Re: Problema com AGGR dentro de IF aninhado
          Yuri Nicolett

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

              • Re: Problema com AGGR dentro de IF aninhado
                rodrigo silva

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

                 

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

                • Re: Problema com AGGR dentro de IF aninhado
                  Yuri Nicolett

                  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

                  )))))

                   

                   

                  )