Ir para conteúdo

Tiago Craici - Xperiun

Admin
  • Total de itens

    1.398
  • Registro em

  • Última visita

Posts postados por Tiago Craici - Xperiun

  1. @Valmir Braz feito... Teste a medida abaixo:

     

    Venda Bruta =
    VAR _DataMinVenda =
        CALCULATE (
            MIN ( dCalendario[Data] ),
            ALL ( dCalendario ),
            dCalendario[Possui Vendas?] = TRUE ()
        )
    VAR _DataMaxVenda =
        CALCULATE (
            MAX ( dCalendario[Data] ),
            ALL ( dCalendario ),
            dCalendario[Possui Vendas?] = TRUE ()
        )
    VAR _DataMinSelecionada =
        CALCULATE ( MIN ( dCalendario[Data] ), ALLSELECTED ( dCalendario ) )
    VAR _DataMaxSelecionada =
        CALCULATE ( MAX ( dCalendario[Data] ), ALLSELECTED ( dCalendario ) )
    RETURN
        SWITCH (
            TRUE (),
            _DataMinVenda <> _DataMinSelecionada
                || _DataMaxVenda <> _DataMaxSelecionada, SUMX ( vwFactVendas, vwFactVendas[Quant] * RELATED ( vwDimProduto[PrecoUnit] ) ),
            _DataMinVenda = _DataMinSelecionada
                || _DataMaxVenda = _DataMaxSelecionada,
                CALCULATE (
                    SUMX ( vwFactVendas, vwFactVendas[Quant] * RELATED ( vwDimProduto[PrecoUnit] ) ),
                    FILTER (
                        dCalendario,
                        dCalendario[Ano] = 2019
                            && // troque para: YEAR(TODAY())
                        dCalendario[Mês Num.] = 3 // troque para: MONTH(TODAY())
                    )
                )
        )
    • Like 1
  2. Olá @ntatiane
    Veja se a medida te atende:


    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 )



     

    • Like 1
  3. Olá @Valmir Braz
    Veja se atende: 

    Quanto selecionado "Mês atual?" = Não, ele respeita o filtro ao lado:
    image.png


    Quanto selecionado "Mês atual?" = Sim, ele pega o mês/ano atual (como no pbix não tinha os dados atualizado improvisei aqui):
    image.png


    Nova tabela:
    image.png


    Medida alterada:

    Venda Bruta =
    var _selecao = SELECTEDVALUE(MesAtualV2[Value])
     
    RETURN
    SWITCH(TRUE(),
        _selecao = "Não",
         SUMX(vwFactVendas,
        vwFactVendas[Quant]*RELATED(vwDimProduto[PrecoUnit])
        ),
        _selecao = "Sim",
        CALCULATE(
            SUMX(vwFactVendas,
            vwFactVendas[Quant]*RELATED(vwDimProduto[PrecoUnit])
            ),
            FILTER(dCalendario,
            dCalendario[Ano] = 2019 &&  // troque para: YEAR(TODAY())
            dCalendario[Mês Num.] = 3 // troque para: MONTH(TODAY())
            )
        )
    )

    OBS na sua base produção altere a medida conforme mencionei acima.

    Em anexo o pbix. 


     

    1-Sand Box (1).pbix

  4. outra solução... Caso não queira adicionar nova coluna (MesAno) em sua dCalendario:


     

    Tiago =
    var _tab =
    SUMMARIZE(
        dCalendar,
        dCalendar[Month],
        dCalendar[Year],
        "Mes",
        DISTINCTCOUNT(dCalendar[Month])
    )
     
    return
     IF(
        OR( ISFILTERED(dCalendar[Date].[Quarter]), ISFILTERED(dCalendar[Date].[Year]) ),
        COUNTROWS(_tab)
    )
  5. ... Caso queira que apareça número somente quando aplicado filtro (segmentador), pode utilizar a medida abaixo:

     

    DisMonth =
     IF(
        OR( ISFILTERED(dCalendar[Date].[Quarter]), ISFILTERED(dCalendar[Date].[Year]) ),
        DISTINCTCOUNT ( dCalendar[MesAno] )
     )
  6. Fala Incomparável @Ronnie Costa
    Que desafio em aahahahah. Seguinte, conforme o ditado "Se o DAX está complexo vale apena rever o ETL"... 

    Observações: Desenvolvi o resultado conforme o modelo (pbix) que passou. Para ser mais assertivo seria necessário uma base atualizada, o maior objetivo é te passar a lógica que cheguei para atender o objetivo, em seguida adapte para sua realidade.  

    1º Criei uma nova coluna (SKU normaliza) para ser relacionado com a tabela fMeta (observado padrão de SKU, vale ver seu cenário se isso é possível). 

    2º medida criada:

    Media Diluida =
    var _Vendedor = SELECTEDVALUE(dVendedor[Cod. Vendedor])
    var _Meta = [Total Meta]
    var _Produto = LEFT(SELECTEDVALUE(dProduto[Sku]), 9)
    var _MediaSKU =
    AVERAGEX(
        CALCULATETABLE(
            'dCalendário',
            DATESINPERIOD(
                fVendas[Data],
                EOMONTH(TODAY(), -1),
                -2,
                MONTH)
        ),
        [Total Venda]
    )
    var _MediaSKUnormalizado =
    AVERAGEX(
        CALCULATETABLE(
            'dCalendário',
            DATESINPERIOD(
                fVendas[Data],
                EOMONTH(TODAY(), -1),
                -2,
                MONTH)
        ),
        CALCULATE([Total Venda], ALL(dProduto), dProduto[SKU normalizado] = _Produto, ALL(dVendedor))
    )
    var _Representatividade =
    DIVIDE(_MediaSKU, _MediaSKUnormalizado)
     
    RETURN
    SWITCH(TRUE(),
        ISINSCOPE(dProduto[Sku]), _Meta * _Representatividade,
        ISINSCOPE(dVendedor[Cod. Vendedor]) && [Total Venda] >0,  CALCULATE([Total Meta], fMetas[Cod. Vendedor] = _Vendedor)
        )


    Resultado:
    image.png


    ⚠ Considerei somente produtos que tiveram venda para o vendedor (contexto). 


    ➡ Em anexo o pbix para entendimento.






     

    Meta diluida por produto.pbix

    • Like 1
×
×
  • Criar Novo...