Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Assuntos relacionados a criação de medidas, fórmulas e funções DAX, relacionamentos etc
#56014
Olá! Tudo bem?
Sou novo aqui no fórum e espero não ter publicado nada de forma incoerente às regras.

Estou com uma dúvida sobre um código que vi no canal do YouTube da Karine Lago (https://www.youtube.com/watch?v=ENOL_LggsbQ).

O código funciona corretamente somando o acumulado de todos os anos da empresa, porém, preciso ir um pouco mais além.

Ao selecionar um filtro de ano na dashboard, preciso que a coluna respeite o intervalo selecionado e não continue mostrando a soma acumulada dos outros anos.

Se for selecionado apenas o ano de 2015, que é o primeiro ano, os valores acumulados estão perfeitos como mostra a primeira imagem (podem não bater algumas casas decimais porque eu apaguei o valor completo. Mas eu conferi e está tudo correto!)

Imagem

O que tem acontecido quando eu seleciono o ano de 2020 é a seguinte situação:

Imagem

Ele continua somando o valor acumulado dos anos anteriores!

O código que a Karine desenvolveu em vídeo é o seguinte (de acordo com o meu arquivo):
Soma Acumulada = CALCULATE(SUM(FtFaturamento[Faturamento]), FILTER(ALL(DimTempo), DimTempo[Data]<=MAX(DimTempo[Data])))

Eu fiz algumas modificações para que a soma acumulada não aparecesse nos meses seguintes, porque apenas repetiria o valor do último mês, e cheguei no seguinte código:
Soma Acumulada = IF(MIN(DimTempo[Data<=CALCULATE(MAX(FtFaturamento[Faturamento]),ALL(FtFaturamento[Faturamento])),CALCULATE(SUM(FtFaturamento[Faturamento]), FILTER(ALL(DimTempo), DimTempo[Data]<=MAX(DimTempo[Data]))))

De qualquer forma, ainda não consegui entender como fazer o código respeitar o filtro por cada ano.

Espero não ter sido muito confuso.
Obrigado pela ajuda e qualquer dúvida estou a disposição!
#56024
Veja a explicação da função ALLEXCEPT:

https://docs.microsoft.com/pt-br/dax/al ... nction-dax

Veja se ajuda:
Código: Selecionar todos
Soma Acumulada = IF(MIN(DimTempo[Data<=CALCULATE(MAX(FtFaturamento[Faturamento]),ALL(FtFaturamento[Faturamento])),CALCULATE(SUM(FtFaturamento[Faturamento]), FILTER(ALLEXCEPT(DimTempo, DimTempo[Ano]), DimTempo[Data]<=MAX(DimTempo[Data]))))
#57087
felipegare escreveu:Olá! Tudo bem?
Sou novo aqui no fórum e espero não ter publicado nada de forma incoerente às regras.

Estou com uma dúvida sobre um código que vi no canal do YouTube da Karine Lago (https://www.youtube.com/watch?v=ENOL_LggsbQ).

O código funciona corretamente somando o acumulado de todos os anos da empresa, porém, preciso ir um pouco mais além.

Ao selecionar um filtro de ano na dashboard, preciso que a coluna respeite o intervalo selecionado e não continue mostrando a soma acumulada dos outros anos.

Se for selecionado apenas o ano de 2015, que é o primeiro ano, os valores acumulados estão perfeitos como mostra a primeira imagem (podem não bater algumas casas decimais porque eu apaguei o valor completo. Mas eu conferi e está tudo correto!)

Imagem

O que tem acontecido quando eu seleciono o ano de 2020 é a seguinte situação:

Imagem

Ele continua somando o valor acumulado dos anos anteriores!

O código que a Karine desenvolveu em vídeo é o seguinte (de acordo com o meu arquivo):
Soma Acumulada = CALCULATE(SUM(FtFaturamento[Faturamento]), FILTER(ALL(DimTempo), DimTempo[Data]<=MAX(DimTempo[Data])))

Eu fiz algumas modificações para que a soma acumulada não aparecesse nos meses seguintes, porque apenas repetiria o valor do último mês, e cheguei no seguinte código:
Soma Acumulada = IF(MIN(DimTempo[Data<=CALCULATE(MAX(FtFaturamento[Faturamento]),ALL(FtFaturamento[Faturamento])),CALCULATE(SUM(FtFaturamento[Faturamento]), FILTER(ALL(DimTempo), DimTempo[Data]<=MAX(DimTempo[Data]))))

De qualquer forma, ainda não consegui entender como fazer o código respeitar o filtro por cada ano.

Espero não ter sido muito confuso.
Obrigado pela ajuda e qualquer dúvida estou a disposição!
O que eu estava procurando era a função ALLSELECTED.

A solução ficou da seguinte maneira:
CALCULATE(SUM(FtFaturamento[Faturamento]), FILTER(ALLSELECTED(DimTempo), DimTempo[Data]<=MAX(DimTempo[Data])))
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord