Ir para conteúdo
  • 0

TOTAL DA COLUNA DIFERENTE DO CONTEXTO


Fabiano_e
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Membros

Pessoal, podem me ajudar com um problema?
Fiz uma medida que me retorna os saldos das contas em determinado período filtrado. Exemplo quero saber quanto tenho em todas as contas em 31/03, porém algumas contas não tiveram movimentações em alguns períodos, e quando seleciono até 31/03 ou apenas 31/03 ele me traz todos os saldos.
O problema está no totalizador das colunas, onde o total não bate com o linha a linha. Já tentei usar a Samex com a values, mas quando uso aí ela quebra os filtros usados para trazer os saldos de datas anteriores.

segue medida:
image.png.73d6364cf10e597f524a29db58319c7f.png

Resultado:
image.png.2b1187c309603339307b4e9f7fdc4a68.png
Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0
  • Membros
  • Solução
Postado (editado)

@Fabiano_e, tenta isso. Para resolver o problema, criei uma tabela dimensão de conta e usei ela no visual e na medida.

UltimoSaldo = 
VAR vDatas = VALUES(dCalendario[Date])
VAR vContas = VALUES(dConta[Conta])
VAR vTabela = 
        ADDCOLUMNS(
            CROSSJOIN(
                vDatas,
                vContas
            ),
            "@Saldo",
            VAR vData = dCalendario[Date]
            VAR vUltimaData = 
                CALCULATE(
                    MAX(dCalendario[Date]),
                    FILTER(
                        ALL(dCalendario),
                        dCalendario[Date] <= vData && 
                        NOT(ISBLANK([SomaSaldo]))
                    )
                )
            VAR vSaldoConta = 
                CALCULATE(
                    [SomaSaldo],
                    FILTER(
                        ALL(dCalendario[Date]),
                        dCalendario[Date] = vUltimaData
                    )
                )
            RETURN
                vSaldoConta
        )
VAR vSaldo = 
    SUMX(
        vTabela,
        [@Saldo]
    )
RETURN
    vSaldo

 

20230511_modelo saldos.pbix

Editado por Bruno Abdalla de Souza
  • Obrigado(a) 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Olá @Fabiano_e, veja se assim atende:

UltimoSaldo = 
VAR SALDO =
SUMX(
SUMMARIZE(
    Saldos,
    --dCalendario[Date],
    "@Saldo",
    CALCULATE(
    Saldos[SomaSaldo],
        LASTNONBLANK(
            FILTER(
                ALL('dCalendario'[Date]),
                'dCalendario'[Date] <= MAX('dCalendario'[Date])
            ),
            [SomaSaldo]
        )
    )
), [@Saldo]
)
    
RETURN
IF(SALDO <> BLANK(), SALDO)

Caso deseje somar todas as datas na coluna de total ai só descomentar a dCalendario[Date].

Espero ter ajudado.

modelo saldos.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
UltimoSaldo = 
VAR SALDO =
    SUMX(
        SUMMARIZE(
            Saldos,
            dCalendario[Date],
            Saldos[--SALDO]
        ),
        VAR vUltimaDataComValor = 
            MAXX(
               FILTER(
                    ALL('dCalendario'[Date]),
                    'dCalendario'[Date] <= MAX(dCalendario[Date]) && 
                    NOT(ISBLANK([SomaSaldo]))
                ),
                [Date]
               )
        VAR vSaldo = 
        CALCULATE(
            [SomaSaldo],
            FILTER(
                ALL('dCalendario'[Date]),
                'dCalendario'[Date] = vUltimaDataComValor
            )
        )
        RETURN
            vSaldo
    )
RETURN
    SALDO

 

20230504_modelo saldos.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
19 horas atrás, Renato Carlos Rossato disse:

Olá @Fabiano_e, veja se assim atende:

UltimoSaldo = 
VAR SALDO =
SUMX(
SUMMARIZE(
    Saldos,
    --dCalendario[Date],
    "@Saldo",
    CALCULATE(
    Saldos[SomaSaldo],
        LASTNONBLANK(
            FILTER(
                ALL('dCalendario'[Date]),
                'dCalendario'[Date] <= MAX('dCalendario'[Date])
            ),
            [SomaSaldo]
        )
    )
), [@Saldo]
)
    
RETURN
IF(SALDO <> BLANK(), SALDO)

Caso deseje somar todas as datas na coluna de total ai só descomentar a dCalendario[Date].

Espero ter ajudado.

modelo saldos.pbix 78.26 kB · 1 download

Renato,
o totalizador da coluna bateu, mas os valores do linha a linha, que deveriam ter sido demonstrados nas linhas das contas não apareceram.
Deveria mostrar igual a medida que fiz no modelo, a única coisa que deveria mudar seriam os totalizadores das colunas.
Na sua solução ele demonstra o total da coluna corretamente, mas não demonstra os valores por conta até a data selecionada.

image.png.362959c836a8480077415415659a587d.png

image.png.18cf3d6ce2c69efdec8aef02fcb63d25.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
16 horas atrás, Bruno Abdalla de Souza disse:
UltimoSaldo = 
VAR SALDO =
    SUMX(
        SUMMARIZE(
            Saldos,
            dCalendario[Date],
            Saldos[--SALDO]
        ),
        VAR vUltimaDataComValor = 
            MAXX(
               FILTER(
                    ALL('dCalendario'[Date]),
                    'dCalendario'[Date] <= MAX(dCalendario[Date]) && 
                    NOT(ISBLANK([SomaSaldo]))
                ),
                [Date]
               )
        VAR vSaldo = 
        CALCULATE(
            [SomaSaldo],
            FILTER(
                ALL('dCalendario'[Date]),
                'dCalendario'[Date] = vUltimaDataComValor
            )
        )
        RETURN
            vSaldo
    )
RETURN
    SALDO

 

20230504_modelo saldos.pbix 78.17 kB · 1 download

 

16 horas atrás, Bruno Abdalla de Souza disse:
UltimoSaldo = 
VAR SALDO =
    SUMX(
        SUMMARIZE(
            Saldos,
            dCalendario[Date],
            Saldos[--SALDO]
        ),
        VAR vUltimaDataComValor = 
            MAXX(
               FILTER(
                    ALL('dCalendario'[Date]),
                    'dCalendario'[Date] <= MAX(dCalendario[Date]) && 
                    NOT(ISBLANK([SomaSaldo]))
                ),
                [Date]
               )
        VAR vSaldo = 
        CALCULATE(
            [SomaSaldo],
            FILTER(
                ALL('dCalendario'[Date]),
                'dCalendario'[Date] = vUltimaDataComValor
            )
        )
        RETURN
            vSaldo
    )
RETURN
    SALDO

 

20230504_modelo saldos.pbix 78.17 kB · 1 download

Bruno,
Para a sua solução aconteceu a mesma situação da resposta do Renato.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

@Renato Carlos Rossato o valor de 1.098,28 o valor de 15.206,18 e o valor de 2.300.195,24 tiveram registros em datas anteriores a 31/03/2023.
A medida que eu criei é exatamente para que os saldos sejam levadas até ultima data da seleção. Só precisaria que em cima da medida que eu já havia criado, pudesse ter um ajuste para que o totalizador da coluna acompanhasse o contexto:
  image.png.d7cba34db0510b9f36258929baeac020.png
image.png.642c34c80ca9f9c0dded396fccf7cd22.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros
25 minutos atrás, Bruno Abdalla de Souza disse:

@Fabiano_e, tenta isso. Para resolver o problema, criei uma tabela dimensão de conta e usei ela no visual e na medida.

UltimoSaldo = 
VAR vDatas = VALUES(dCalendario[Date])
VAR vContas = VALUES(dConta[Conta])
VAR vTabela = 
        ADDCOLUMNS(
            CROSSJOIN(
                vDatas,
                vContas
            ),
            "@Saldo",
            VAR vData = dCalendario[Date]
            VAR vUltimaData = 
                CALCULATE(
                    MAX(dCalendario[Date]),
                    FILTER(
                        ALL(dCalendario),
                        dCalendario[Date] <= vData && 
                        NOT(ISBLANK([SomaSaldo]))
                    )
                )
            VAR vSaldoConta = 
                CALCULATE(
                    [SomaSaldo],
                    FILTER(
                        ALL(dCalendario[Date]),
                        dCalendario[Date] = vUltimaData
                    )
                )
            RETURN
                vSaldoConta
        )
VAR vSaldo = 
    SUMX(
        vTabela,
        [@Saldo]
    )
RETURN
    vSaldo

 

20230511_modelo saldos.pbix 78.74 kB · 1 download

@Bruno Abdalla de Souza é isso mesmo. Muito obrigado.

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...