Ir para conteúdo
  • 0

Escondendo datas futuras, mas deixar os meses aparecendo


Rafael Fina Ferreira

Pergunta

  • Alunos

Pessoal, bom dia!

Preciso apresentar a tela abaixo, onde no gráfico de 2024 eu precisei ocultar datas futuras e passadas que não possuem dados. Porém gostaria que os meses permanecessem no eixo x para que seja possível comparar os dois gráficos, o ano do contexto e o LY.

image.png.c8ac27e712653abcb60290b5e4231e6f.png

Para esconder os períodos passados e futuros sem informação eu utilizei uma coluna calculada na dCalendario:

Possui dados = dCalendario[Data] <= MAX(fVeiculos[DATA DA MOBILIZAÇÃO])
 
Obrigado.
Link para o comentário
Compartilhar em outros sites

13 respostass a esta questão

Posts Recomendados

  • 1
  • Alunos

@Rafael Fina Ferreira, tudo bem? Vamos por partes.

1)  Note na tabela abaixo que: 158 +20 - 4 = 173, sendo que o resultado deveria ser 174. Este é o primeiro desafio que não consegui solucionar.

image.png.31a0bb1cd037f1c2c0fc4be2f3e2b25b.png

O resultado acumulado de julho está correto. O que acontece é que nesse mês, você tem um valor duplicado.

image.png.40f75b6ffe0ddcb0d0d1f95d4198ce57.png

Por isso o resultado acumulado é 173 e não 174.

Quanto ao mês de dezembro não aparecer, como está sendo feita uma alteração de contexto, onde você leva os dados do mês atual para o futuro, para que o mês de dezembro/24 seja exibido, é necessário que você tenha dados de 2025 (pelo menos janeiro) na sua dCalendario.
image.png.9d316fc87d43e8af3bb0ebf84d48b473.png

Draftveiculos.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

As medidas que utilizei no gráfico abaixo, referente a 2024:

Total desvios telemetria = COUNTA(fTelemetria[ID])
 
MobilizacaoAjustado =
VAR vDataContexto = MIN(dCalendario[Data])
VAR vUltDiaMesSeguinte = EOMONTH(vDataContexto,1)
VAR vPriDiaMesSeguinte= DATE(YEAR(vUltDiaMesSeguinte),MONTH(vUltDiaMesSeguinte),01)
RETURN
CALCULATE(
    [Acumulado Mob],
    FILTER(
        ALL(dCalendario),
        dCalendario[Data] >= vPriDiaMesSeguinte &&
        dCalendario[Data] <=vUltDiaMesSeguinte
    )
)
 
% desvios telemetria = DIVIDE(
    [Total desvios telemetria], [MobilizacaoAjustado]
 
image.png.594db55eaeb178a27de7b6fe0ba7d3db.png
 
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Infelizmente não deu certo.

Acrescentei o +0 no final da função, filtrando o visual com a coluna possui dados da dCalendario e quase chegamos no resultado. Agora é necessário esconder os meses do passado que não possuem dados. O visual está filtrado com ano = 2024 e só temos dados em janeiro e fevereiro de 2024.

image.png.c7fcf75ed2fe8ae0313e2fb451aa4827.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Fala @Rafael Fina Ferreira!

Envia um .PBIX de exemplo pra gente dar uma analisada. Fiz aqui um mockup baseado nas imagens e medidas que você compartilhou e a minha primeira resposta já resolveu o problema:

Citar

Total desvios telemetria =
IF(
    MIN(dCalendario[Data]) <= TODAY(),
    COUNTA(fTelemetria[ID]),
    0
)

image.png.fd8ac818a3ea4eaee2fe1f84921f58ce.png

Provavelmente outras configurações do teu modelo estão afetando o resultado.

Abs!

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Obrigado, @Renato Carlos Rossato! eu criei a coluna, mas quando eu filtrei apenas o ano de 2024, apareceram no gráfico apenas os meses que possuem dados, e a ideia e que os demais meses sem dados, permaneçam no gráfico, com valor = 0.

@Joao Raulino, como solicitado, segue PBIX + bases para análise, por favor.

Vou apresentar uma breve apresentação da necessidade deste projeto.

Possuímos duas listas de controle de veículos e equipamentos. Uma controla os mobilizados e a outra os desmobilizados.

A ideia é apresentar mês a mês, o total de veículos e equipamentos acumulado, considerando novas mobilizações e desmobilizações.

Para este cálculo, se faz necessário utilizar duas colunas basicamente: DATA DA MOBILIZAÇÃO e DATA DA DESMOB.

1º cálculo: Total de veículos:

Mobilizado = COUNTROWS(fVeiculos)

2º cálculo: total desmobilizados:

Desmobilizado =

CALCULATE(

    [Mobilizado],

    USERELATIONSHIP(dCalendario[Data],fVeiculos[DATA DA DESMOB]),

    NOT(ISBLANK(fVeiculos[DATA DA DESMOB]))

)

3º cálculo: Mobilizados acumulados:

Acumulado Mob =

VAR vDataContexto = MIN(dCalendario[Data])

RETURN

CALCULATE(

    [Mobilizado] - [Desmobilizado],

    FILTER(

        ALL(dCalendario),

        dCalendario[Data] <= vDataContexto

    )

)

Obs: Acrescentei esta função em uma tabela, juntamente com a função mobilizado e desmobilizado para conferir se os valores estavam corretos, e notei que em alguns meses os valores não batem, mas, o resultado final bate com a base. Talvez aqui seja necessário avaliar se a função está correta, por favor.

Note na tabela abaixo que: 158 +20 - 4 = 173, sendo que o resultado deveria ser 174. Este é o primeiro desafio que não consegui solucionar.

 

image.png.31a0bb1cd037f1c2c0fc4be2f3e2b25b.png

 

O segundo desafio seria fazer com que o resultado na linha de junho |2023, aparecesse na linha de Maio | 2023, e assim por diante. Como se "Acumulado Mob" aparecesse sempre em M-1. Para isso foi criada a função:

MobilizacaoAjustado =

VAR vDataContexto = MIN(dCalendario[Data])

VAR vUltDiaMesSeguinte = EOMONTH(vDataContexto,1)

VAR vPriDiaMesSeguinte= DATE(YEAR(vUltDiaMesSeguinte),MONTH(vUltDiaMesSeguinte),01)

RETURN

CALCULATE(

    [Acumulado Mob],

    FILTER(

        ALL(dCalendario),

        dCalendario[Data] >= vPriDiaMesSeguinte &&

        dCalendario[Data] <=vUltDiaMesSeguinte

    )

)

Esta solução acima resolve a situação, porém, seria necessário solucionar o primeiro desafio apresentado acima. Outro item que notei, é que apresentando os resultados em M-1, o último mês do ano que possui dados não aparece no gráfico:

image.png.e06bda0789004470573d9ba0b2114c8f.png

Perceba que dezembro de 2024 não aparece no gráfico. Neste caso seria necessário fazer com este último mês apareca no gráfico.

E o último desafio seria fazer com que não aparecessem os valores futuros, permanecendo os dados apenas até o ultimo mes que possua dados, mas que os meses subsequentes do ano, permaneçam no gráfico com o valor 0.

Estou anexando as duas bases + PBIX resumo contemplando todos os cálculos utilizados.

 

Obrigado mais uma vez.

 

Draftveiculos.pbix ssma_mob_desmob.xlsx ssma_mob_desmob_desmob.xlsx

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

@Edson Igari, boa noite! tudo bem?

Realmente existiam alguns veículos duplicados pelo TAG DB e removi as duplicatas no PQ. Porém as somatórias dos acumulados continuam não batendo. Fiz uma análise nas bases e percebi que existem Placas (Coluna PLACA/TAG) que estão repetindo, porém, esta situação pode ocorrer e precisa ser considerada, sendo que um veículos pode ser desmobilizado em um determinado período e ser mobilizado novamente pela mesma empresa ou empresa diferente. Foz um teste em remover as duplicatas da coluna PLACA/TAG, porém os resultados da função de acumulado, em alguns meses, continuam não batendo.

Mais uma vez obrigado pela ajuda.

Se possível, precisava solucionar também  a situação abaixo, apresentada como último desafio no meu post  anexado no fórum ontem, dia 12/02, juntamente com os outros desafios que você respondeu:

E o último desafio seria fazer com que não aparecessem os valores futuros, permanecendo os dados apenas até o ultimo mes que possua dados, mas que os meses subsequentes do ano, permaneçam no gráfico com o valor 0.

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