Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá amigos,
Preciso que o valor de um KPI seja calculado de forma dinâmica, conforme seleção de um filtro específico.
Tenho um KPI com a seguinte medida aplicada:
(Soma ({<Ano = {$ (= $ (vAnoAtual))}, TIPO2 = {'FALTAS'}>} [DIA X HORA.Abs]) * -1
+
Soma ({<Ano = {$ (= $ (vAnoAtual))}, TIPO2 = {'ATRASOS'}>} [DIA X HORA.Abs]) * - 1
+
Soma ({<Ano = {$ (= $ (vAnoAtual))}, TIPO2 = {'ATESTADOS' }>} [DIA X HORA.Abs]))
/
(Soma ({<Ano = {$ (= $ (vAnoAtual))}}, TIPO2 = {'SB'}>} [DIA X HORA.Abs]))
Quando eu selecionar no filtro "Faltas", "Atrasos" ou "Atestados", o KPI precisa realiza o cálculo dinâmico, exemplos:
Exemplo 1: Ao filtrar "Faltas", realizar o cálculo:
Sum( {<Ano = {$(=$(vAnoAtual))}, TIPO2 = {'FALTAS'} >} [DIA X HORA.Abs]) *-1
/
(Sum( {<Ano = {$(=$(vAnoAtual))}, TIPO2 = {'SB'} >} [DIA X HORA.Abs] ))
Exemplo 2: ao filtrar "Atrasos", realizar o cálculo:
Sum( {<Ano = {$(=$(vAnoAtual))}, TIPO2 = {'ATRASOS'} >} [DIA X HORA.Abs])*-1
/
(Sum( {<Ano = {$(=$(vAnoAtual))}, TIPO2 = {'SB'} >} [DIA X HORA.Abs] ))
Exemplo 3: ao filtrar "Atestados", realizar o cálculo:
Sum( {<Ano = {$(=$(vAnoAtual))}, TIPO2 = {'ATESTADOS'} >} [DIA X HORA.Abs])
/
(Sum( {<Ano = {$(=$(vAnoAtual))}, TIPO2 = {'SB'} >} [DIA X HORA.Abs] ))
Exemplo 4: quando não houver nenhum filtro realizar o cálculo:
(Soma ({<Ano = {$ (= $ (vAnoAtual))}, TIPO2 = {'FALTAS'}>} [DIA X HORA.Abs]) * -1
+
Soma ({<Ano = {$ (= $ (vAnoAtual))}, TIPO2 = {'ATRASOS'}>} [DIA X HORA.Abs]) * - 1
+
Soma ({<Ano = {$ (= $ (vAnoAtual))}, TIPO2 = {'ATESTADOS' }>} [DIA X HORA.Abs]))
/
(Soma ({<Ano = {$ (= $ (vAnoAtual))}}, TIPO2 = {'SB'}>} [DIA X HORA.Abs]))
Como poderia fazer isso para que fique dinâmico dessa forma?
Obs.: em anexo uma imagem do KPI e do Filtro em questão.
@Leandro_Cordeiro faça somente um pequeno ajuste:
Exemplo: GetFieldSelections([TIPO2])='ATESTADOS' and GetFieldSelections([TIPO2])='ATRASOS'
@Thiago_Justen_ teria alguma formula para ocultar apenas a nível visual no filtro, quando utilizo o IF, mesmo que no Script conforme sugerido, parece que o IF está "matando" minha base, e como estou usando o dado SB em uma medida, os gráficos perdem referência.
Bom dia @Leandro_Cordeiro,
Podemos criar um campo no script com apenas o valores que te interessam no campo de filtro. No geral, o que der pra gente resolver via script, é melhor.
@Thiago_Justen_ então, foi essa uma das formas que eu havia tentando tbm, mas não funcionou, quando faço o Filtro "Atestados" + "Atrasos", meu KPI continua zerando.
Veja abaixo o Racional:
If( GetFieldSelections([TIPO3])='ATRASOS','0',
If( GetFieldSelections([TIPO3])='ATESTADOS',
Sum( {<Ano = {$(=$(vAnoAtual_abs))}, TIPO2 = {'ATESTADOS'} >} [DIA X HORA.Abs]),
if (GetFieldSelections([TIPO3])='ATESTADOS' and GetFieldSelections([TIPO3])='ATRASOS',
Sum( {<Ano = {$(=$(vAnoAtual_abs))}, TIPO2 = {'ATESTADOS'} >} [DIA X HORA.Abs])
If(IsNull(GetFieldSelections([TIPO3])),
Sum( {<Ano = {$(=$(vAnoAtual_abs))}, TIPO2 = {'ATESTADOS'} >} [DIA X HORA.Abs]),
))))