Ir para conteúdo
  • 0

Preencher sábado e domingo com o valor da sexta-feira


Cacio Lima

Pergunta

  • Membros

Boa noite, preciso criar uma tabela com duas colunas, uma com o valor do dia e outra com o valor do dia anterior.

No sábado e domingo tem que preencher com o valor da sexta.

Na coluna do valor do dia está ok, mas na coluna do dia anterior o sábado e domingo está preenchendo com o valor da quinta.

Podem me ajudar a identificar onde estou errando na medida do dia anterior?

Medida dia:

(S) Caixa =
CALCULATE(
    [($) Caixa Diário],
    LASTNONBLANK(
        FILTER(
            ALL(dCalendario[Date]),
            dCalendario[Date] <= MAX(dCalendario[Date])
        ),
        [($) Caixa Diário]
    )
)

Medida dia anterior:

(S) Caixa d-1 =
CALCULATE(
    [($) Caixa Dia Anterior],
    LASTNONBLANK(
        FILTER(
            ALL(dCalendario[Date]),
            dCalendario[Date] <= MAX(dCalendario[Date])
        ),
        [($) Caixa Dia Anterior]
    )
)image.png.e6ba470cb1946ddf81b8c7991e69f484.png
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0
  • Membros
15 horas atrás, Cacio Lima disse:

Boa noite, preciso criar uma tabela com duas colunas, uma com o valor do dia e outra com o valor do dia anterior.

No sábado e domingo tem que preencher com o valor da sexta.

Na coluna do valor do dia está ok, mas na coluna do dia anterior o sábado e domingo está preenchendo com o valor da quinta.

Podem me ajudar a identificar onde estou errando na medida do dia anterior?

Medida dia:

(S) Caixa =
CALCULATE(
    [($) Caixa Diário],
    LASTNONBLANK(
        FILTER(
            ALL(dCalendario[Date]),
            dCalendario[Date] <= MAX(dCalendario[Date])
        ),
        [($) Caixa Diário]
    )
)

Medida dia anterior:

(S) Caixa d-1 =
CALCULATE(
    [($) Caixa Dia Anterior],
    LASTNONBLANK(
        FILTER(
            ALL(dCalendario[Date]),
            dCalendario[Date] <= MAX(dCalendario[Date])
        ),
        [($) Caixa Dia Anterior]
    )
)image.png.e6ba470cb1946ddf81b8c7991e69f484.png

Olá Cacio, boa tarde!
fiz um simulado aqui e acredito que dessa forma vc consegue resolver o problema 🙂

Reaproveita sua medida do dia e coloca dentro de uma dateadd e adiciona variáveis :), espero ter ajudado

(S) Caixa d-1 =
var vseg_sab = CALCULATE([(S) Caixa], DATEADD(dCalendario[Date], -1,DAY))
var vdom = CALCULATE([(S) Caixa], DATEADD(dCalendario[Date], -2,DAY))
Return
SWITCH(
    TRUE(),
    MAX(dCalendario[Dia da Semana]) = "dom", vdom,vseg_sab
)

image.png.42bf38233d2dabeef8d577b7914f12dc.png

Editado por Carlos Silva
Link para o comentário
Compartilhar em outros sites

  • 0
  • Membros

Boa tarde @Cacio Lima

O erro de pegar o valor de quinta-feira:
Na sua medida os dias sábado e domingo pegou o valor de quinta pela função "LASTNONBLANK",  a mesma retorna o último valor na coluna filtrada pelo contexto (dia da semana) atual em que a expressão não está em branco que no seu caso retornaria o contexto sexta-feira, depois do contexto passou a função  dCalendario[Date] <= MAX(dCalendario[Date]) retornando o valor de quinta. 



Segue medida para seu objetivo:

Medida dia anterior =
SWITCH (
    TRUE (),
    SELECTEDVALUE ( dCalendario[Semana dia] ) = "sáb", CALCULATE ( [($) Caixa Dia Anterior], DATEADD (  dCalendario[Date], -1, DAY ) ),
    SELECTEDVALUE ( dCalendario[Semana dia] ) = "dom", CALCULATE ( [($) Caixa Dia Anterior], DATEADD (  dCalendario[Date], -2, DAY ) ),
    [($) Caixa Dia Anterior]
)


ATENÇÂO ao valor do total!!!
Como criamos condições que são passada linha a linha (contexto dia da semana) ao chegar no total a mesma não será interpretada e retornará um valor errado. 
Vamos corrigir criando uma nova medida utilizando uma função de agregação "SUMX".


A medida: 

Medida dia anterior correção de total=
SUMX ( VALUES ( dCalendario[Semana dia] ), [Medida dia anterior] )



Espero ter ajudado. 
Sucesso meu amigo! 🚀

Editado por Tiago Craici
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...