Alunos Renata Balsani Postado Maio 10, 2022 Alunos Compartilhar Postado Maio 10, 2022 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 More sharing options...
0 Alunos Solução Renata Balsani Postado Maio 11, 2022 Autor Alunos Solução Compartilhar Postado Maio 11, 2022 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 More sharing options...
0 Alunos Michele Postado Maio 11, 2022 Alunos Compartilhar Postado Maio 11, 2022 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 More sharing options...
0 Alunos Michele Postado Maio 11, 2022 Alunos Compartilhar Postado Maio 11, 2022 Olá @Renata Balsani! Consegui te ajudar? Caso sim e puder marcar a resposta como Solução, caso contrário quiser colocar algum ponto que ainda precise esclarecer 😄 Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Renata Balsani
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
Faça login para comentar
Você vai ser capaz de deixar um comentário após fazer o login
Entrar Agora