Ir para conteúdo
  • 0

TOTAL DA COLUNA DIFERENTE DO CONTEXTO


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

Pergunta

  • Alunos

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
  • Alunos
  • Solução

@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
  • Thanks 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

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
  • Alunos
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
  • Alunos
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
  • Alunos
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
  • Alunos

Olá @Fabiano_e, no PBIX que enviou há algumas contas como por exemplo a 130008931 que tem 1098,28 no seu print ai e na base do PBIX não tem, sugiro que reveja os dados no Power Query que acredito que as medidas que já colocamos aqui anteriormente trarão o resultado esperado.

image.png.0f615ed3639763c9e89aa4d6d2512ff9.png

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@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
  • Alunos
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

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...