Ir para conteúdo
  • 0

Valor Se replica para meses subsequentes sem movimentação.


Edson Borges
Ir para solução Solucionado por Weverton Todeschini ,

Pergunta

  • Alunos

Pessoal, Boa tarde! 

Probleminha básico mais chato, estou com cálculo de acumulado no ano, porém não estamos com anos fechado, e por isso meu acumulado na teoria deveria ir apenas até o mês de última movimentação (no caso Julho), ocorre que estamos falando de Orçado x Realizado, onde meu orçamento é anual, ou seja, está com valor, já o realizado o nome já diz, está realizado no período.

Após fazer as medidas, tudo certinho, coloco o mesmo em gráfico de linhas, para mostrar a curvatura na operação, e eis que me aparece o valor replicado, ele simplesmente repete o último mês para todos os meses restantes do ano, mandar uma foto do problema para ver se alguém já passou por isso.

Despe já obg.

Screenshot_1.png

Screenshot_2.png

Link para o comentário
Compartilhar em outros sites

25 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
10 minutos atrás, Edson Borges disse:

Estava me referindo a minha tentativa de isolar no Query, e sobre sua solução felei que chegou perto, e que foi a quie mais se aprocimou da resolução.

No PBIX que mandei tem um grafico certo, ocorre que o fechamento nesse exemplo que mandei foi o de Julho, ou seja, O orçamento e acumulado anual x o Realizado até Julho, nao poderia ter dados de agosto para frente, deixei ate o resultado do mes para mostrar o que que queria.

Por isso falei que a sua solução chegou proxima, entendeu?!

o Resultado Final devera ficar .... Orçado Janeiro - Dezembro    e    Realizado Janeiro - Julho


altera o return para verificar o valor no lugar da data, pode ser a medida que vc já indicou como - 1 ou a soma normal.


Return IF(ISBLANK([Total RE Resultado]),BLANK(),vResultado)

Editado por Weverton Todeschini
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

você precisa criar uma variável e receber a data máxima 
var DataMax = tabela[data]

 aplicar este filtro no segundo argumento da calculate:

calculate(
                 [medida],
                 filter(..),
                 dCalendario[Data] <= DataMax
)

Editado por Weverton Todeschini
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
12 minutos atrás, Weverton Todeschini disse:

você precisa criar uma variável e receber a data máxima 
var DataMax = tabela[data]

 aplicar este filtro no segundo argumento da calculate:

calculate(
                 [medida],
                 filter(..),
                 dCalendario[Data] <= DataMax
)

um if ai da certo tbm :

if ( medida realizado igual a blank() , retorna blank() , caso contrario medida de acumulado)

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

  • 0
  • Alunos
Agora, Edson Borges disse:

Fala Weverton, tuido blz?!

Pior que ja tinha feito e tambem nao tinha dado certo, repare para ver se seria isso o que comentou....

Ate por que estou usando dentro da calculate o max tbm e mesmo assim nao vai...rsrsr

Screenshot_3.png

nn, não é desta forma não, vc tem de manter os dois filtros de data, o que falei vc vai colocar no segundo argumento de filtro da calculate, ai vc só substituiu ele na filter. 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Rapaz, olha nao entendi sua logica não , mias segue a Dax aqui para ver onde estou pecando .....

Realizado Acumulado calen =
VAR vDataMax = MAX(dCalendario[Data])
 
VAR vResultado =
 
                CALCULATE([Total RE Resultado] ,
                FILTER(
                    dCalendario,
                    dCalendario[Data]),
                    dCalendario[Data] <= vDataMax
    )
 
Return
vResultado
 
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Realizado Acumulado calen =
VAR vDataMax = MAX ( dCalendario[Data] )
VAR vResultado =
    CALCULATE (
        [Total RE Resultado],
        FILTER (
            ALL ( dCalendario ),
            dCalendario[Data] <= MAX ( dCalendario[Data] )
        ),
        dCalendario[Data] <= vDataMax
    )
RETURN
    vResultado

Link para o comentário
Compartilhar em outros sites

  • 0
  • Admin

Boa Noite @Edson Borges

Veja a medida abaixo:


Realizado vCraici =
VAR vDataMax = MAX(dCalendario[Data])
 
VAR vResultado =
         IF([Resultado Mes] <> blank(),
                CALCULATE([Total RE Resultado] ,
                FILTER(
                    dCalendario,
                    dCalendario[Data]),
                    dCalendario[Data] <= vDataMax
    )
)
 
Return
vResultado





 

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

  • 0
  • Alunos

Olá Edson, minha sugestão seria criar uma coluna calculada na tabela calendario como por exemplo:

Possui dados = dCalendario[Data] <= MAX(fato[Data])

Com isso ele vai retornar TRUE e FALSE na coluna.

Em seguida na medida que o pessoal citou acima colocar um CALCULATETABLE para filtrar as datas:

Realizado =

VAR vDataMax = MAX ( dCalendario[Data] )
VAR vResultado =
    CALCULATE (
        [Total RE Resultado],
       CALCULATETABLE(
          FILTER(
          ALL(dCalendario), 
          dCalendario[Data] <= vDataMax
          ),
          dCalendario[PossuiDados] = TRUE() --Filtra somente dias menor ou igual a data que tiveram movimentos
          )
    )
RETURN
    vResultado

Espero ter ajudado.

 

Editado por Renato Rossato
  • Like 1
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
9 horas atrás, Renato Rossato disse:

Olá Edson, minha sugestão seria criar uma coluna calculada na tabela calendario como por exemplo:

Possui dados = dCalendario[Data] <= MAX(fato[Data])

Com isso ele vai retornar TRUE e FALSE na coluna.

Em seguida na medida que o pessoal citou acima colocar um CALCULATETABLE para filtrar as datas:

Realizado =

VAR vDataMax = MAX ( dCalendario[Data] )
VAR vResultado =
    CALCULATE (
        [Total RE Resultado],
       CALCULATETABLE(
          FILTER(
          ALL(dCalendario), 
          dCalendario[Data] <= vDataMax
          ),
          dCalendario[PossuiDados] = TRUE() --Filtra somente dias menor ou igual a data que tiveram movimentos
          )
    )
RETURN
    vResultado

Espero ter ajudado.

 

Acho que me confundi, para essa situação, também criava uma coluna calculada , só que filtrava no visual depois, dessa forma na medida fica até melhor. 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Bom dia Galera! 

Fiz todos os testes que cada um aqui solicitou, nao obtive resultado, ate por que minha fato contem Orçado e Realizado, ou seja ela semrpe vai ter dados na data por conta do orçado, dai fiz uma referencia para isolar OR de RE e tbm nao foi ...kkkkk...
Sendo assim, vou deixar aqui o PBIX para ver que cagada que eu to fazendo..... kkkk

haa, deixei so com aplicação de voçes, vejam ai o que pode ser ...

551977495_ControleOramentario-2022-V5.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Olá Edson então ao invés de colocar o MAX(dCalendario[Data]) coloca o TODAY():

Possui dados = dCalendario[Data] <= TODAY() e aplica o filtro do CALCULATETABLE:

Realizado =

VAR vDataMax = MAX ( dCalendario[Data] )
VAR vResultado =
    CALCULATE (
        [Total RE Resultado],
       CALCULATETABLE(
          FILTER(
          ALL(dCalendario), 
          dCalendario[Data] <= vDataMax
          ),
          dCalendario[PossuiDados] = TRUE() --Filtra somente dias menor ou igual a data que tiveram movimentos
          )
    )
RETURN
    vResultado

Espero ter ajudado.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
14 minutos atrás, Edson Borges disse:

Bom dia Galera! 

Fiz todos os testes que cada um aqui solicitou, nao obtive resultado, ate por que minha fato contem Orçado e Realizado, ou seja ela semrpe vai ter dados na data por conta do orçado, dai fiz uma referencia para isolar OR de RE e tbm nao foi ...kkkkk...
Sendo assim, vou deixar aqui o PBIX para ver que cagada que eu to fazendo..... kkkk

haa, deixei so com aplicação de voçes, vejam ai o que pode ser ...

551977495_ControleOramentario-2022-V5.pbix 21 MB · 1 download

ahh ai muda um pouco a história rsrs, se tem data pra orçado o filtro não vai funcionar, se não ele vai ocultar valores existentes, neste caso, teria de retornar BLANK() mesmo apenas para a coluna de realizado conforme os colegas sugeriram.  

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
14 minutos atrás, Renato Rossato disse:

Olá Edson então ao invés de colocar o MAX(dCalendario[Data]) coloca o TODAY():

Possui dados = dCalendario[Data] <= TODAY() e aplica o filtro do CALCULATETABLE:

Realizado =

VAR vDataMax = MAX ( dCalendario[Data] )
VAR vResultado =
    CALCULATE (
        [Total RE Resultado],
       CALCULATETABLE(
          FILTER(
          ALL(dCalendario), 
          dCalendario[Data] <= vDataMax
          ),
          dCalendario[PossuiDados] = TRUE() --Filtra somente dias menor ou igual a data que tiveram movimentos
          )
    )
RETURN
    vResultado

Espero ter ajudado.

Teste feito, sem solução Renato....rrsrs

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 minutos atrás, Weverton Todeschini disse:

ahh ai muda um pouco a história rsrs, se tem data pra orçado o filtro não vai funcionar, se não ele vai ocultar valores existentes, neste caso, teria de retornar BLANK() mesmo apenas para a coluna de realizado conforme os colegas sugeriram.  

Pois é, haha.... como esse calculo e apenas para um unico visual, vou tentar isolar no query, e depois aplicar, ... to tentando de tudo aqui...hahha

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
2 minutos atrás, Edson Borges disse:

Pois é, haha.... como esse calculo e apenas para um unico visual, vou tentar isolar no query, e depois aplicar, ... to tentando de tudo aqui...hahha

entra em conflitro a regra com os contextos, como tem orçado e realizado na mesma matriz. daria para fazer algo assim.

image.png.248599e673cb0a434cadfe8f18388fc8.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
46 minutos atrás, Edson Borges disse:

Quase em, rsrs,  mesmo isolando nao vai, rs, sei que tem um jeito mais desconheço, essa sua foi a mais proxima memso 

o que não vai? me perdi agora no que é seu objetivo, poderia fazer um print e explicar melhor o que vc quer como resultado final? Obrigado. 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
6 minutos atrás, Weverton Todeschini disse:

o que não vai? me perdi agora no que é seu objetivo, poderia fazer um print e explicar melhor o que vc quer como resultado final? Obrigado. 

Estava me referindo a minha tentativa de isolar no Query, e sobre sua solução felei que chegou perto, e que foi a quie mais se aprocimou da resolução.

No PBIX que mandei tem um grafico certo, ocorre que o fechamento nesse exemplo que mandei foi o de Julho, ou seja, O orçamento e acumulado anual x o Realizado até Julho, nao poderia ter dados de agosto para frente, deixei ate o resultado do mes para mostrar o que que queria.

Por isso falei que a sua solução chegou proxima, entendeu?!

o Resultado Final devera ficar .... Orçado Janeiro - Dezembro    e    Realizado Janeiro - Julho

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