Ir para conteúdo
  • 0

Interpretação de fórmula


Renata Balsani
Ir para solução Solucionado por Renata Balsani ,

Pergunta

  • Alunos

Estou participando de um projeto de BI e me deparei com a fórmula abaixo, poderia me ajudar na interpretação das variáveis:

 

Estoque_PME_AAtual_Grafico:= 

var MaiorDataFilter = MAX('corp dim_calendarioAuto'[Date])

VAR dtHoje = NOW()

var dtSelectEnd = IF(MaiorDataFilter > dtHoje,dtHoje,MaiorDataFilter)

var vlEstoque = DIVIDE(CALCULATE(SUM('financeiro fato_saldo_contabil'[Valor do Saldo Contábil Final]),
                        'financeiro dim_estrutura_hierarquica_nivel'[Código Hierarquia N1]= "00.FCL",
                      
                         'financeiro dim_estrutura_hierarquica_nivel'[Código Nível Filho N2] in {"01.3.3 Estoques"},
                         
                           DATESINPERIOD('corp dim_calendario'[Data],
                            dtSelectEnd,-12,MONTH)
                     

),12,0)
 
var vlCpv = DIVIDE(CALCULATE(SUM('financeiro fato_saldo_contabil'[Valor do Saldo Contábil Final]),
                        'financeiro dim_estrutura_hierarquica_nivel'[Código Hierarquia N1]= "00.FCL",             
                        'financeiro dim_estrutura_hierarquica_nivel'[Código Nível Filho N3] in {"01.1.1.2 CPV"},
                       //  FILTER('corp dim_calendario',MONTH('corp dim_calendario'[Data]) <= MONTH(dtSelectEnd))
                         DATESINPERIOD('corp dim_calendario'[Data],
                            dtSelectEnd,-12,MONTH)
                     
),12,0) 


 

var PME = DIVIDE(vlEstoque,vlCpv,0)*360


return PME
 

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
2 minutos atrás, Michele disse:

Olá @Renata Balsani!

Não sei se você já tinha feito, mas é sempre bom indentar o código, fica bem mais fácil de ler e entender, só isso para mim já resolve mais da metade do problema rs

Veja se as explicações te ajudam de alguma forma, espero que sim:

 Estoque_PME_AAtual_Grafico:=
//Aqui pega a maior data da calendário
var MaiorDataFilter = MAX('corp dim_calendarioAuto'[Date])

//Aqui pega a data de hoje
VAR dtHoje = NOW()

//Aqui valida se a data do calendário for maior que hoje, então traga hoje para essa variável
var dtSelectEnd = IF(MaiorDataFilter > dtHoje,dtHoje,MaiorDataFilter)

//Aqui soma valor do saldo dos últimos 12 meses e divide por 12, aparentemente para conseguir uma média para o nível "01.3.3 Estoques", acho que o mais adequado seria usar AVARAGEX.
var vlEstoque =
DIVIDE(
    CALCULATE(
        SUM('financeiro fato_saldo_contabil'[Valor do Saldo Contábil Final]),
                 'financeiro dim_estrutura_hierarquica_nivel'[Código Hierarquia N1]= "00.FCL",
                 'financeiro dim_estrutura_hierarquica_nivel'[Código Nível Filho N2] in {"01.3.3 Estoques"},
                 DATESINPERIOD('corp dim_calendario'[Data],dtSelectEnd,-12,MONTH)
    ),
    12,
    0
)

//Aqui soma valor do saldo dos últimos 12 meses e divide por 12, aparentemente para conseguir uma média para o nível "01.1.1.2 CPV", acho que talvez dê para usar AVARAGEX.
var vlCpv =
DIVIDE(
    CALCULATE(
        SUM('financeiro fato_saldo_contabil'[Valor do Saldo Contábil Final]),
                'financeiro dim_estrutura_hierarquica_nivel'[Código Hierarquia N1]= "00.FCL",             
                'financeiro dim_estrutura_hierarquica_nivel'[Código Nível Filho N3] in {"01.1.1.2 CPV"},
        //Essa parte está comentada então não faz nada
                //  FILTER('corp dim_calendario',MONTH('corp dim_calendario'[Data]) <= MONTH(dtSelectEnd))
                DATESINPERIOD('corp dim_calendario'[Data],dtSelectEnd,-12,MONTH)
                     
    ),
    12,
    0
)  

//Aqui Divide essas duas médias anteriores e multiplica por 360, como se essas fórmulas acima fossem diárias, confesso que não compreendi essa parte, talvez seja alguma regra de negócio.
var PME = DIVIDE(vlEstoque,vlCpv,0)*360

//Aqui apenas retorna a variável anterior.
return PME

Obrigada Michelle pela ajuda. O código não é meu rsrs, realmente é necessário indentar.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá @Renata Balsani!

Não sei se você já tinha feito, mas é sempre bom indentar o código, fica bem mais fácil de ler e entender, só isso para mim já resolve mais da metade do problema rs

Veja se as explicações te ajudam de alguma forma, espero que sim:

 Estoque_PME_AAtual_Grafico:=
//Aqui pega a maior data da calendário
var MaiorDataFilter = MAX('corp dim_calendarioAuto'[Date])

//Aqui pega a data de hoje
VAR dtHoje = NOW()

//Aqui valida se a data do calendário for maior que hoje, então traga hoje para essa variável
var dtSelectEnd = IF(MaiorDataFilter > dtHoje,dtHoje,MaiorDataFilter)

//Aqui soma valor do saldo dos últimos 12 meses e divide por 12, aparentemente para conseguir uma média para o nível "01.3.3 Estoques", acho que o mais adequado seria usar AVARAGEX.
var vlEstoque =
DIVIDE(
    CALCULATE(
        SUM('financeiro fato_saldo_contabil'[Valor do Saldo Contábil Final]),
                 'financeiro dim_estrutura_hierarquica_nivel'[Código Hierarquia N1]= "00.FCL",
                 'financeiro dim_estrutura_hierarquica_nivel'[Código Nível Filho N2] in {"01.3.3 Estoques"},
                 DATESINPERIOD('corp dim_calendario'[Data],dtSelectEnd,-12,MONTH)
    ),
    12,
    0
)

//Aqui soma valor do saldo dos últimos 12 meses e divide por 12, aparentemente para conseguir uma média para o nível "01.1.1.2 CPV", acho que talvez dê para usar AVARAGEX.
var vlCpv =
DIVIDE(
    CALCULATE(
        SUM('financeiro fato_saldo_contabil'[Valor do Saldo Contábil Final]),
                'financeiro dim_estrutura_hierarquica_nivel'[Código Hierarquia N1]= "00.FCL",             
                'financeiro dim_estrutura_hierarquica_nivel'[Código Nível Filho N3] in {"01.1.1.2 CPV"},
        //Essa parte está comentada então não faz nada
                //  FILTER('corp dim_calendario',MONTH('corp dim_calendario'[Data]) <= MONTH(dtSelectEnd))
                DATESINPERIOD('corp dim_calendario'[Data],dtSelectEnd,-12,MONTH)
                     
    ),
    12,
    0
)  

//Aqui Divide essas duas médias anteriores e multiplica por 360, como se essas fórmulas acima fossem diárias, confesso que não compreendi essa parte, talvez seja alguma regra de negócio.
var PME = DIVIDE(vlEstoque,vlCpv,0)*360

//Aqui apenas retorna a variável anterior.
return PME

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...