Ir para conteúdo
  • 0

Acumular Saldo Até o Mês Anterior ao Mês Selecionado


Charlles Ferdinand
Ir para solução Solucionado por Michele ,

Pergunta

  • Alunos

Bom dia pessoal,

 

 Estou precisando acumular a soma de Receitas e despesas até o mês anterior ao mês selecionado no filtro de segmentação de dados e somar ao saldo Inicial

Exemplo

Se Quero visualizar os valores de Receitas e Despesas do Mês de Fevereiro tenho que chegar ao Saldo Inicial que é o mesmo valor do saldo final do mês de Janeiro.

Ou seja para o mês de Fevereiro, pego o valor do Saldo Inicial(Sum(SaldoInicial[Valor])), Adiciono o valor das receitas(medida), subtraio as despesas(medida) do mês anterior, que no caso  serão os valores acumulados de Janeiro mais Saldo Inicial.

No caso para Março, serão as receitas e despesas de Janeiro e Fevereiro mais o saldo Inicial.

 

Janeiro

Sld_Inicial......1.000,00

Receita...........1.500,00

Despesa............500,00

Saldo final.......2.000,00

 

Fevereiro

Sld_Inicial......1.000,00

Receita...........1.500,00

Despesa............500,00

Saldo final.......3.000,00

Tenho Usado esta Medida mas não está funcionando.

Medida = 

Calculate(Receita,

Filter(All(dCalendario, dCalendario[Data] < Min(dCalendario[Data])))

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos
  • Solução

Olá @CharllesFerdinand!

Segue medida que atende ao que você mandou, e abaixo vou colocar os pontos que percebi que fizeram funcionar.

  • Pontos
    • ALL dentro da FILTER como você tinha colocado inicialmente, porém da tabela fLancamentos.
    • Data de comparação na FILTER tem que ser sempre da sua Fato:
      • Como estava:
        • Filter(All(dCalendario, dCalendario[Data] < Min(dCalendario[Data])))
      • Correto:
        • FILTER(
                      ALL(fLancamentos),
                      fLancamentos[Data] < MIN(dCalendario[Data])
                  )
    • Ano na sua tabela/visual. Se não tem referência de ano em nenhum lugar o MIN(dCalendario[Data]) vai retornar a menor data que existir na dCalendario toda.
      • A sua dCalendario está com datas desde 1953, se você criou com CALENDARAUTO() significa que alguma tabela sua possui uma data nesse ano, por isso o ideal é criar ou passando uma data inicio e fim, ou criar no Power Query, pois algo assim acaba inflando desnecessariamente seu modelo.
      • Coloquei um segmentador/filtro de ano para que não viessem todos os anos da dCalendario ok.
      • Crie uma medida com o MIN(dCalendario[Data]) que ficará fácil entender isso.
  • Medida:

Saldo Inicial Mes =
Var vReceita =  
    CALCULATE(
        [_Receita],       
        FILTER(
            ALL(fLancamentos),
            fLancamentos[Data] < MIN(dCalendario[Data])
        )
    )

Var vDespesa =  
    CALCULATE(
        [_Despesa],
        FILTER(
            ALL(fLancamentos),
            fLancamentos[Data] < MIN(dCalendario[Data])
        )
    )

 return
 vReceita -  vDespesa + [_Saldo Inicial]

 

image.png.b2cb64a869759263c08580cf03bf3a4f.png

 

Painel Financeiro v10.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Oi @CharllesFerdinand!

Você chegou a tentar com a medida dessa forma abaixo?

Medida =
CALCULATE(
    Receita,
    ALL(dCalendario),
    FILTER(
        dCalendario,
        dCalendario[Data] < Min(dCalendario[Data])
    )
)

Eu normalmente preciso de dados acumulados, então nem deixo ativos os relacionamentos das Fatos com a dCalendario, por isso nem preciso dar um ALL(dCalendario), aciono apenas dentro de alguma medida que eu precisar dos dados mensais, por exemplo.

Outro ponto importante é a suas datas estarem como datas mesmo, não data/hora, senão na hora de usar o < MIN vai acabar trazendo dados do 1º dia do mês atual também.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
4 horas atrás, Michele disse:

Oi @CharllesFerdinand!

Você chegou a tentar com a medida dessa forma abaixo?

Medida =
CALCULATE(
    Receita,
    ALL(dCalendario),
    FILTER(
        dCalendario,
        dCalendario[Data] < Min(dCalendario[Data])
    )
)

Eu normalmente preciso de dados acumulados, então nem deixo ativos os relacionamentos das Fatos com a dCalendario, por isso nem preciso dar um ALL(dCalendario), aciono apenas dentro de alguma medida que eu precisar dos dados mensais, por exemplo.

Outro ponto importante é a suas datas estarem como datas mesmo, não data/hora, senão na hora de usar o < MIN vai acabar trazendo dados do 1º dia do mês atual também.

@Michele, Boa tarde, passei o dia fora e só pude ver sua resposta agora.

Vou te encaminhar um Pbix com a base de dados. 

Estou tentando resolver a medida de Saldo Inicial Mes. Tentei fazer da forma que falou, usando p <MIN e já verifiquei o tipo de dato da data, que esta como Data.

Caixa.rar

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
1 hora atrás, Michele disse:

Olá @CharllesFerdinand!

Segue medida que atende ao que você mandou, e abaixo vou colocar os pontos que percebi que fizeram funcionar.

  • Pontos
    • ALL dentro da FILTER como você tinha colocado inicialmente, porém da tabela fLancamentos.
    • Data de comparação na FILTER tem que ser sempre da sua Fato:
      • Como estava:
        • Filter(All(dCalendario, dCalendario[Data] < Min(dCalendario[Data])))
      • Correto:
        • FILTER(
                      ALL(fLancamentos),
                      fLancamentos[Data] < MIN(dCalendario[Data])
                  )
    • Ano na sua tabela/visual. Se não tem referência de ano em nenhum lugar o MIN(dCalendario[Data]) vai retornar a menor data que existir na dCalendario toda.
      • A sua dCalendario está com datas desde 1953, se você criou com CALENDARAUTO() significa que alguma tabela sua possui uma data nesse ano, por isso o ideal é criar ou passando uma data inicio e fim, ou criar no Power Query, pois algo assim acaba inflando desnecessariamente seu modelo.
      • Coloquei um segmentador/filtro de ano para que não viessem todos os anos da dCalendario ok.
      • Crie uma medida com o MIN(dCalendario[Data]) que ficará fácil entender isso.
  • Medida:

Saldo Inicial Mes =
Var vReceita =  
    CALCULATE(
        [_Receita],       
        FILTER(
            ALL(fLancamentos),
            fLancamentos[Data] < MIN(dCalendario[Data])
        )
    )

Var vDespesa =  
    CALCULATE(
        [_Despesa],
        FILTER(
            ALL(fLancamentos),
            fLancamentos[Data] < MIN(dCalendario[Data])
        )
    )

 return
 vReceita -  vDespesa + [_Saldo Inicial]

 

image.png.b2cb64a869759263c08580cf03bf3a4f.png

 

Painel Financeiro v10.pbix 295 kB · 2 downloads

@Michele, Funcionou perfeitamente como eu queria.

Muito Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 28/09/2021 em 23:05, CharllesFerdinand disse:

@Michele, Funcionou perfeitamente como eu queria.

Muito Obrigado

Michele,

Tempos atrás vc me ajudou com essa questão de fazer esta medida para fazer saldo Incial mês a mês. 
Agora o que estou tendo dificuldade é que quando seleciono através de um filtro de segment. de Dados, a medida não esta funcionando.

Poderia me ajudar com mais esta?

SEM SELECIONAR O CAIXA

image.png.98ad47abeb89c0475a2d0bc3f65a2fae.png

SELECIONANDO UM CAIXA COMO EXEMPLO O "MERCADO PAGO"
image.png.8c72af2da7ed8f3d45e2f9c8b3fd04d7.png

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...