01. Funções

Abaixo temos alguns exemplo básicos que de funções que poder ser útil em suas análises.

Variação/Diferença entre Duas Medidas Simples.

[Measures].[MEDIDA] - [Measures].[MEDIDA2]

Formatações: Moeda(R$), Padrão(Inteiro), Percentual(%) e Com Duas Casas Decimais(12,34).

Currency, Standard, Percent, "#,##0.00"

Variação Percentual entre Duas Medidas.

[Measures].[MEDIDA] / [Measures].[MEDIDA2]

Formatação Condicional de Moeda + Cores.

Iif(([Measures].[MEDIDA] < 0.0), "|R$#,##0.00|style=green", "|R$#,##0.00|style=red")

Formatação Condicional de Percentual + Alerta tipo Semáforo.

Iif(([Measures].[MEDIDA] > 0.0), "|0.00%|image=/resources/images/kpi/green-ball\.gif","|0.00%|image=/resources/images/kpi/ball-red\.gif")

Medida Acumulada Ano.

Sum(PeriodsToDate([PERIODO.(Completo)].[Ano]), [Measures].[MEDIDA])

Medida Histórica 12 Meses.

([Measures].[MEDIDA], [PERIODO.(Completo)].CurrentMember.Lag(12))

Formatação Condicional de Percentual + Seta Up/Down.

Iif(([Measures].[MEDIDA] > 0.0), "|0.00%|arrow=up", "|0.00%|arrow=down")

Filtrar somente os membros válidos do "TOP 100". Geralmente utilizado em analises de ABC,podendo variar o valor do "TOP".

NON EMPTY Filter(TopCount({[DIMENSÃO].Children}, 100.0, [Measures].[MEDIDA]), Not IsEmpty([Measures].[MEDIDA])) ON ROWS

Membro Dia Atual.

MEMBER [Measures].[DiaAtual] AS
(Iif((Format(now(), "Mm") = [PERIODO].CurrentMember.Name) AND (Format(now(), "yyyy") = [PERIODO].CurrentMember.Parent.Name),
CDbl(Format(Now(), "d")), [PERIODO].CurrentMember.Children.Count))

Membro Dia Anterior.

MEMBER [Measures].[DiaAnterior] AS Iif(([Measures].[DiaAtual] = 1), 1, ([Measures].[DiaAtual] - 1))

Membro Dias do Mês.

MEMBER [Measures].[DiasDoMes] AS Sum(PeriodsToDate([PERIODO].[Mes]), 1.0)

Membro Último Dia do Mês.

MEMBER [Measures].[UltimoDiadoMes] AS (([PERIODO].CurrentMember.LastChild),
[Measures].[DiasDoMes])

Membro Dias Restantes.

MEMBER [Measures].[DiasRestantesMes] AS Iif(([Measures].[UltimoDiadoMes] = [Measures].[DiaAtual]),
0, ([Measures].[UltimoDiadoMes] - [Measures].[DiaAnterior]))

Média Últimos 3 Meses.

Avg(([PERIODO].CurrentMember.Lag(3.0) : [PERIODO].CurrentMember.Lag(1.0)), [Measures].[MEDIDA])

Função de Arredondamento da Medida em 2 Casas Decimais (podendo vairar "2").

(ROUND([Measures].[MEDIDA], 2)

Tem como função evitar que um valor inválido seja apresentado como resultado de um cálculo.

Iif(([Measures].[MEDIDA] = 0 OR IsEmpty([Measures].[MEDIDA])), Null, "Calculo")

Tem como função evitar que um valor inválido seja apresentado como resultado de um cálculo, considerando ambas medidas do mesmo. (Expressão Composta).

Iif((([Measures].[MEDIDA] = 0 OR IsEmpty([Measures].[MEDIDA])) OR
([Measures].[MEDIDA2] = 0 OR IsEmpty([Measures].[MEDIDA2]))), Null, "Calculo")

Tem como função evitar que um valor inválido seja apresentado como resultado de um cálculo, condicionando as medidas separadamente (Condicionante).

Iif(([Measures].[MEDIDA] = 0 OR IsEmpty([Measures].[MEDIDA])), Iif(([Measures].[MEDIDA2] = 0 OR IsEmpty([Measures].[MEDIDA2])), Null, 1),"Calculo")

Formatação de uma Medida, apresentando a máscara de percentual + cores (Três Faixas de Cores).

Iif(([Measures].[MEDIDA] < 0.90), "|0.00%|style=red",
Iif(([Measures].[MEDIDA] >= 1), "|0.00%|style=green", "|0.00%|style=yellow"))

Formatação de uma Medida, apresentando a máscara de percentual + cor (Alerta Vermelho).

Iif(([Measures].[MEDIDA] < 0), "|0.00%|style=red", "|0.00%|")

Formatação de uma Medida, apresentando a máscara de percentual + cores (Duas Cores + Excessão).

Iif(([Measures].[MEDIDA] < 0), "|0.00%|style=red", Iif([Measures].[MEDIDA] > 0.40), "|0.00%|style=green", "|0.00%|")

Formatação de uma Medida, apresentando a máscara de percentual + cores (Três Cores + Excessão).

Iif(([Measures].[MEDIDA] < 0), "|0.00%|style=red", Iif(([Measures].[MEDIDA] > (0.4)), "|0.00%|style=green",Iif(([Measures].[MEDIDA] < (0.18)), "|0.00%|style=yellow", "|0.00%|")))

Medida Condicional por Dimensão/Membro.

([DIMENSÃO].[MEMBER], [Measures].[MEDIDA])

Construção de Membros Agregados simples.

MEMBER [DIMENSÃO].[Todos].[NOME MEMBRO] AS Aggregate({[DIMENSÃO].[MEMBRO], [DIMENSÃO].[MEMBRO2]})

Construção de Membros Agregados em Range. Considerando o Primeiro membro após o final do Range([DIMENSÃO].[MEMBRO FINAL].Lag(1) )  como membro final.

MEMBER [DIMENSÃO].[Todos].[NOME MEMBRO] AS Aggregate({[DIMENSÃO].[MEMBRO INICIAL] : [DIMENSÃO].[MEMBRO FINAL].Lag(1)})

Construção de Membros Agregados com Excessão de Membros na Agregação.

MEMBER [DIMENSÃO].[NOME MEMBRO] AS
Aggregate({Except ([DIMENSÃO].Children,
{[DIMENSÃO].[MEMBRO EXCEPT], [DIMENSÃO].[MEMBRO EXCEPT]})})

Apresentar Membros da Dimensão desconsiderando as Exceções.

NON EMPTY {Except([DIMENSÃO].Children,{[DIMENSÃO].[MEMBRO EXCEPT], [DIMENSÃO].[MEMBRO EXCEPT]})} ON ROWS

Formatação Condicional Medalhas.

Iif(([Measures].[MEDIDA] >= 9), "|OURO|image=images/kpi/medal_gold.png", Iif(([Measures].[MEDIDA] >= 8.0), "|PRATA|image=images/kpi/medal-silver.png",
"|BRONZE|image=images/kpi/medal-bronze.png"))

Formatação de uma Medida, apresentando a máscara de percentual + Alerta tipo Semáforo (3 Cores).

Iif(([Measures].[MEDIDA] < 0.90), "|0.00%|image=/resources/images/kpi/ball-red\.gif", Iif(([Measures].[MEDIDA] >= 1),
 "|0.00%|image=/resources/images/kpi/green-ball\.gif", "|0.00%|image=/resources/images/kpi/ball-yellow\.gif"))

Formatação de uma Medida Condicional, apresentando a máscara de percentual + Alerta tipo Semáforo (3 Cores).

Iif(([Measures].[MEDIDA] < 0), Iif(([Measures].[MEDIDA2] < 0), "|0.00%|image=/resources/images/kpi/green-ball\.gif", 
Iif(([Measures].[MEDIDA2] >= 0.1001), "|0.00%|image=/resources/images/kpi/ball-red\.gif",
"|0.00%|image=/resources/images/kpi/ball-yellow\.gif")),

Iif(([Measures].[MEDIDA2] >= 0), "|0.00%|image=/resources/images/kpi/green-ball\.gif", Iif(([Measures].[MEDIDA2] <= (-0.1001)), "|0.00%|image=/resources/images/kpi/ball-red\.gif",
"|0.00%|image=/resources/images/kpi/ball-yellow\.gif")))

Medida de Participação vertical de uma dimensão analisada.

Iif((IsEmpty([Measures].[MEDIDA]) OR ([Measures].[MEDIDA] = 0)), Null, (([DIMENSÃO].[Todos].CurrentMember, [Measures].[MEDIDA]) / ([DIMENSÃO].[NOME_MEMBRO], [Measures].[MEDIDA])))

Apresentar os Membros Filhos da Dimensão.

[DIMENSÃO].[Todos].Children