Pessoal, conforme medida abaixo, estou tentando buscar uma forma de otimizar o calculo porém ele está muito pesado e quando eu publico no power bi services, alguns gráficos estão dando erro de "memória insuficiente", eu preciso tirar uma média da medida "Sequencia Ajustada" (criei uma medida sequencia ajustada_v2 fazendo a média no return porém ai a medida não respeita corretamente os filtros externos de Base Operacional por exemplo).
Obs: a tabela fato tem cerca de 3 milhoes de linhas e poucas colunas, mas o arquivo .pbix tem apenas 27 Mb.
@Erick Oliveira, se possível poderia me auxiliar nesse caso como está mais familiar com a medida que desenvolveu?
Sequencia Ajustada =
VAR vSemanaContexto =
MAX ( dCalendario[AnoSemanaInt] )
VAR vPrimeiroValorZero = // Procurar o valor sem vendas mais próximo
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 0
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] <= vSemanaContexto
)
)
VAR vResultadoPadrao = // Resultado padrão para os valores
CALCULATE (
COUNTROWS (
VALUES(dCalendario[AnoSemanaInt])
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] < vSemanaContexto
&& dCalendario[AnoSemanaInt] > vPrimeiroValorZero
)
)
VAR vUmAnterior = // Procurar o valor com vendas mais próximo
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 1
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] <= vSemanaContexto
)
)
VAR vZeroAnterior = // Procurar o valor sem vendas anterior ao com vendas mais próximo
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 0
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] <= vUmAnterior
)
)
VAR vResultadoSemVenda = // Resultado para as semanas sem vendas
CALCULATE (
COUNTROWS (
VALUES(dCalendario[AnoSemanaInt])
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] < vUmAnterior
&& dCalendario[AnoSemanaInt] >= vZeroAnterior
)
)
VAR vUmAnteriorAnterior = // Procurar o valor com vendas anterior ao valor com vendas mais próximo
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 1
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] < vSemanaContexto
)
)
VAR vZeroAnteriorAnterior = // Procurar o valor sem vendas anterior ao valor anterior anterior com vendas
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 0
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] <= vUmAnteriorAnterior
)
)
VAR vPrimeiroValorSequencia = // Resultado para a primeira semana com vendas após uma sequencia sem vendas
CALCULATE (
COUNTROWS (
VALUES(dCalendario[AnoSemanaInt])
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] < vUmAnteriorAnterior
&& dCalendario[AnoSemanaInt] >= vZeroAnteriorAnterior
)
)
RETURN
SWITCH (
TRUE (),
[Possui Vendas Semana?] = 0, vResultadoSemVenda + 0,
vResultadoPadrao = 0, vPrimeiroValorSequencia + 0,
vResultadoPadrao
)
Pergunta
Felipe Capitani
Pessoal, conforme medida abaixo, estou tentando buscar uma forma de otimizar o calculo porém ele está muito pesado e quando eu publico no power bi services, alguns gráficos estão dando erro de "memória insuficiente", eu preciso tirar uma média da medida "Sequencia Ajustada" (criei uma medida sequencia ajustada_v2 fazendo a média no return porém ai a medida não respeita corretamente os filtros externos de Base Operacional por exemplo).
Obs: a tabela fato tem cerca de 3 milhoes de linhas e poucas colunas, mas o arquivo .pbix tem apenas 27 Mb.
@Erick Oliveira, se possível poderia me auxiliar nesse caso como está mais familiar com a medida que desenvolveu?
Sequencia Ajustada =
VAR vSemanaContexto =
MAX ( dCalendario[AnoSemanaInt] )
VAR vPrimeiroValorZero = // Procurar o valor sem vendas mais próximo
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 0
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] <= vSemanaContexto
)
)
VAR vResultadoPadrao = // Resultado padrão para os valores
CALCULATE (
COUNTROWS (
VALUES(dCalendario[AnoSemanaInt])
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] < vSemanaContexto
&& dCalendario[AnoSemanaInt] > vPrimeiroValorZero
)
)
VAR vUmAnterior = // Procurar o valor com vendas mais próximo
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 1
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] <= vSemanaContexto
)
)
VAR vZeroAnterior = // Procurar o valor sem vendas anterior ao com vendas mais próximo
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 0
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] <= vUmAnterior
)
)
VAR vResultadoSemVenda = // Resultado para as semanas sem vendas
CALCULATE (
COUNTROWS (
VALUES(dCalendario[AnoSemanaInt])
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] < vUmAnterior
&& dCalendario[AnoSemanaInt] >= vZeroAnterior
)
)
VAR vUmAnteriorAnterior = // Procurar o valor com vendas anterior ao valor com vendas mais próximo
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 1
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] < vSemanaContexto
)
)
VAR vZeroAnteriorAnterior = // Procurar o valor sem vendas anterior ao valor anterior anterior com vendas
CALCULATE (
MAXX (
FILTER (
VALUES(dCalendario[AnoSemanaInt]),
[Possui Vendas Semana?] = 0
),
dCalendario[AnoSemanaInt]
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] <= vUmAnteriorAnterior
)
)
VAR vPrimeiroValorSequencia = // Resultado para a primeira semana com vendas após uma sequencia sem vendas
CALCULATE (
COUNTROWS (
VALUES(dCalendario[AnoSemanaInt])
),
FILTER (
ALL ( dCalendario ),
dCalendario[AnoSemanaInt] < vUmAnteriorAnterior
&& dCalendario[AnoSemanaInt] >= vZeroAnteriorAnterior
)
)
RETURN
SWITCH (
TRUE (),
[Possui Vendas Semana?] = 0, vResultadoSemVenda + 0,
vResultadoPadrao = 0, vPrimeiroValorSequencia + 0,
vResultadoPadrao
)
Sequencia de semanas vendidas (4).pbix
4 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