Ir para conteúdo

Tiago Craici - Xperiun

Admin
  • Total de itens

    1.398
  • Registro em

  • Última visita

Posts postados por Tiago Craici - Xperiun

  1. Olá @Joao Raulino e @Claudionor 

    Utilizando a função DAX "DATEADD" não vai atender a seu objetivo Claudionor. Primeiro que essa função passando os parâmetros -7, DAY vai retornar o total referente à 7 dias passado ao "CONTEXTO" (Em uma tabela com Data e valor de Consumo vai entender o comportamento da mesma)... 

    Falando em contexto... Em seu card não há contexto de data, com isso vai trazer o valor total (Consumo).
    Até poderíamos utilizar a função "
    WEEKNUM" mas teria um problema na virada de ano (primeira semana do ano)... Com isso pensei na seguinte solução:



    1º Na sua dimensão dCalendario criar uma nova coluna com a "SemanaContinua", segue medida abaixo:

    SemanaContinua =
    IF (
        dCalendario[Ano] = YEAR ( MIN ( dCalendario[Data] ) ),
        + WEEKNUM ( dCalendario[Data], 2 ),
        ( YEAR ( dCalendario[Data] ) - YEAR ( MIN ( dCalendario[Data] ) ) ) * 53
            + WEEKNUM ( dCalendario[Data], 2 ) - 1
    )



    ---> Agora vamos para o objetivo (trazer o valor de consumo da semana atual e no mesmo cartão a diferença percentual da semana anterior.)

    Medida: 

     

    Semana atual x anterior =
    var _SemanaAtual =
    CALCULATE(
        SELECTEDVALUE(dCalendario[SemanaContinua]),
        dCalendario[Data] = TODAY()
    )
     
    var _SemanaAnterio = _SemanaAtual -1
     
    var _ValorSemanaAtual =
    CALCULATE(
        [Total Venda],
        dCalendario[SemanaContinua] = _SemanaAtual
    )
     
    var _ValorSemanaAnterior =
    CALCULATE(
        [Total Venda],
        dCalendario[SemanaContinua] = _SemanaAnterio
    )
     
    var _Diferenca =
    DIVIDE(  _ValorSemanaAtual - _ValorSemanaAnterior, _ValorSemanaAnterior )
     
    RETURN
    _Diferenca



    OBS: Não se esqueça de colocar a formatação da medida em percentual.  ---> altere a [Total Venda] com sua medida de Consumo. 


    Depois nos conte se deu certo @Claudionor 👍

    • Like 1
  2. @LGustavo favor validar a medida abaixo:


     

    Finalização Corte =
    VAR vCapacidadeTotal = [Na Fase Corte] + [Chegando Corte] //Soma da quantidade que está e vai chegar no setor
    VAR vQtdDias = DIVIDE ( vCapacidadeTotal, [Capacidade Diaria Corte] ) //Quantidade de dias para acabar toda a demanda

    var _Tabela =   //tabela virtual desconsiderando final de semana (sáb/dom) 
    CALCULATETABLE(
        ADDCOLUMNS(dCalendario,
        "@Data", dCalendario[Data]
        ),
        NOT WEEKDAY ( dCalendario[Data] ) IN { 1, 7 },
        dCalendario[Data] >= TODAY()
    )

    RETURN 

    MINX(
        INDEX(
            vQtdDias,  // retorna a posição do dia da tabela virtual (valor da variável vQtdDias)
            _Tabela,
            ORDERBY(dCalendario[Data], ASC)
        ),
        dCalendario[Data])

  3. Bom dia @Henrique Marsal! Veja se é isso que precisa:


    YOY Acumulado =
    VAR _EsteAno =
        CALCULATE ( [Total Venda], DATESYTD ( dCalendario[Data] ) )
    VAR _AnoPassado =
        CALCULATE (
            CALCULATE (
                CALCULATE ( [Total Venda], DATESYTD ( dCalendario[Data] ) ),
                DATEADD ( dCalendario[Data], -1, YEAR )
            ),
            FILTER ( dCalendario, [Total Venda] > 0 )
        )
    RETURN
        DIVIDE ( _EsteAno - _AnoPassado, _AnoPassado )

  4. @LGustavo

    Veja se a medida abaixo atende:



    Finalização Corte =
    VAR vCapacidadeTotal = [Na Fase Corte] + [Chegando Corte] //Soma da quantidade que está e vai chegar no setor
    VAR vQtdDias =
        DIVIDE ( vCapacidadeTotal, [Capacidade Diaria Corte] ) //Quantidade de dias para acabar toda a demanda
    VAR QtdDiasFimSemana =
        COUNTROWS (
            CALCULATETABLE (
                VALUES ( dCalendario[Data] ),
                WEEKDAY ( dCalendario[Data] ) IN { 6, 7 },
                DATESINPERIOD ( dCalendario[Data], TODAY (), + vQtdDias, DAY )
            )
        )
    VAR vDataFinal =
        MAXX (
            CALCULATETABLE (
                VALUES ( dCalendario[Data] ),
                NOT WEEKDAY ( dCalendario[Data] ) IN { 6, 7 },
                DATESINPERIOD (
                    dCalendario[Data],
                    TODAY (),
                    + vQtdDias + QtdDiasFimSemana,
                    DAY
                )
            ),
            dCalendario[Data]
        )
    RETURN
        vDataFinal

  5. 3 horas atrás, Tiago Soares disse:

    Muito Obrigado!   Parabéns!!!
    não sabia que poderia acumular a Função "ALL" várias vezes.

    uma dúvida: é possível adicionar mais um nível ? 
    exemplo: eu iria adicionar na matriz a coluna "Cat. Financeira" da tabela "fMovimentação". 

    image.png.16da40fc022c95413ab512fafdeb6240.png

    Olá @Tiago Soares! É possível trabalhar com quantos níveis necessários. Tenho DRE com 5 níveis. 
     

    • Like 1
×
×
  • Criar Novo...