Skip to main content
Announcements
Accelerate Your Success: Fuel your data and AI journey with the right services, delivered by our experts. Learn More
cancel
Showing results for 
Search instead for 
Did you mean: 
Leandro_Cordeiro
Contributor II
Contributor II

Calculo dinâmico conforme aplicação de Filtro

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.

13 Replies
Thiago_Justen_

@Leandro_Cordeiro faça somente um pequeno ajuste: 

Exemplo: GetFieldSelections([TIPO2])='ATESTADOS' and GetFieldSelections([TIPO2])='ATRASOS'

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Leandro_Cordeiro
Contributor II
Contributor II
Author

@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.

Thiago_Justen_

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 Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Leandro_Cordeiro
Contributor II
Contributor II
Author

@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]),

))))