Ir para conteúdo
  • 0

Calcular todos os dias da semana com base no filtro


Nasugiyama
Ir para solução Solucionado por Tiago Craici - Xperiun ,

Pergunta

  • Alunos

Estou precisando de ajuda em um ponto aqui.

Data: 01/01/2023 até 16/07/2023, considerando no total 28 semanas, a resposta que ele tem que me trazer é da semana anterior no caso a 27. Isso tudo de forma dinâmica.

 

Tenho um filtro com os dias da semana, Seg, Terça, Quarta, Quinta, Sexta, Sábado, Domingo. E o filtro tem a opção de selecionar todos esses dias.

Porém quando eu seleciono 1 ou mais dias ou todos os dias, ele me retorna 0. Ele somente traz o cálculo correto quando seleciono somente 1 dia especifico. 

Se eu seleciono a SEGUNDA, ele tem que me retornar o valor da última semana da segunda feira. e assim sucessivamente.

Caso eu selecione todos os dias, ele tem que me trazer a soma da última semana. Ou caso eu selecione terça e quarta, ele teria que me trazer a soma desses dois dias da semana 27.

 

A função que estou utilizando.

 

QtdEntrantesUltimaDataPorDiaDaSemanav2 =
VAR DiaDaSemanaSelecionado = SELECTEDVALUE(dCalendario[Nome do Dia]) // Considera o filtro do dia da semana selecionado
RETURN
SWITCH (
    DiaDaSemanaSelecionado,
    "Domingo", // Domingo
    CALCULATE([Qtd Entrantes], TOPN(1, FILTER(dCalendario, WEEKDAY(dCalendario[data]) = 1), dCalendario[Data], DESC)),
    "Segunda-feira", // Segunda-feira
    CALCULATE([Qtd Entrantes], TOPN(1, FILTER(dCalendario, WEEKDAY(dCalendario[data]) = 2), dCalendario[Data], DESC)),
    "Terça-feira", // Terça-feira
    CALCULATE([Qtd Entrantes], TOPN(1, FILTER(dCalendario, WEEKDAY(dCalendario[data])= 3), dCalendario[Data], DESC)),
    "Quarta-feira", // Quarta-feira
    CALCULATE([Qtd Entrantes], TOPN(1, FILTER(dCalendario, WEEKDAY(dCalendario[data]) = 4), dCalendario[Data], DESC)),
    "Quinta-feira", // Quinta-feira
    CALCULATE([Qtd Entrantes], TOPN(1, FILTER(dCalendario, WEEKDAY(dCalendario[data]) = 5), dCalendario[Data], DESC)),
    "Sexta-feira", // Sexta-feira
    CALCULATE([Qtd Entrantes], TOPN(1, FILTER(dCalendario, WEEKDAY(dCalendario[data]) = 6), dCalendario[Data], DESC)),
    "Sábado", // Sábado
    CALCULATE([Qtd Entrantes], TOPN(1, FILTER(dCalendario, WEEKDAY(dCalendario[data]) = 7), dCalendario[Data], DESC)),
    0 // Se o valor de DiaDaSemanaSelecionado não corresponder a nenhum dia da semana, retorne 0
) + 0 // Adicionar zero para converter possíveis valores vazios em zero

Captura de tela 2023-07-25 121811.png

dúvida.pbix

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Admin
  • Solução

@Nasugiyama Veja se a medida abaixo atende:

 

Entrantes V_Tiago =
VAR vUltimaSemana =
    CALCULATE (
        SELECTEDVALUE ( dCalendario[semana_comercial] ),
        dCalendario[data]
            = MAX ( dCalendario[data] )
    ) - 1
VAR resultado =
    CALCULATE (
        [Qtd Entrantes],
        ALL ( dCalendario ),
        dCalendario[semana_comercial] = vUltimoMes,
        VALUES ( dCalendario[Nome do Dia] )
    )
 
RETURN
    resultado





 

  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Tiago Craici fiz só um ajuste tirando o -1 e deu certo. Obrigada de verdade pela ajuda. 

 

tiago =
VAR vUltimaSemana =
    CALCULATE (
        SELECTEDVALUE (dCalendario[semana_comercial]),
        dCalendario[data] = MAX (dCalendario[data])
    )
VAR resultado =
    CALCULATE (
        [Qtd Entrantes],
        ALL (dCalendario),
        dCalendario[semana_comercial] = vUltimaSemana,
        VALUES (dCalendario[Nome do Dia])
    )
 
RETURN
    COALESCE(resultado, 0)
  • Like 1
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...