Forum Discussion

1 Reply

  • v-ljerr-msft's avatar
    v-ljerr-msft
    Icon for Microsoft Employee rankMicrosoft Employee

    Hi RogerioTortosa,

     

    After reviewing your shared pbix files, I find that you have used many SUMX functions and FILTER(dProdutosFichasTecnicas)(the entire table in a FILTER) within the measure [Necessidade Compra Ficha] which may cause the measure slow. Here is a good article (Tune your PowerPivot DAX query, don’t use the entire table in a FILTER and replace SUMX if possible) for your reference.

     

    I have tried the formula below, and it is much fast then the previous one. :smileyhappy:

    Necessidade Compra Ficha =
    VAR SaldoInicialFicha =
        CALCULATE (
            SUM ( dSaldoEstoques[QtdeDisponivel] ),
            VALUES ( dProdutosFichasTecnicas )
        )
    VAR SegundaFicha =
        CALCULATE (
            [Total Qtde Pendente Insumo],
            FILTER (
                VALUES ( dProdutosFichasTecnicas ),
                dProdutosFichasTecnicas[DataEntrega] = [Next Segunda]
            )
        )
    VAR TercaFicha =
        CALCULATE (
            [Total Qtde Pendente Insumo],
            FILTER (
                VALUES ( dProdutosFichasTecnicas ),
                dProdutosFichasTecnicas[DataEntrega] = [Next Terça]
            )
        )
    VAR QuartaFicha =
        CALCULATE (
            [Total Qtde Pendente Insumo],
            FILTER (
                VALUES ( dProdutosFichasTecnicas ),
                dProdutosFichasTecnicas[DataEntrega] = [Next Quarta]
            )
        )
    VAR QuintaFicha =
        CALCULATE (
            [Total Qtde Pendente Insumo],
            FILTER (
                VALUES ( dProdutosFichasTecnicas ),
                dProdutosFichasTecnicas[DataEntrega] = [Next Quinta]
            )
        )
    VAR SextaFicha =
        CALCULATE (
            [Total Qtde Pendente Insumo],
            FILTER (
                VALUES ( dProdutosFichasTecnicas ),
                dProdutosFichasTecnicas[DataEntrega] = [Next Sexta]
            )
        )
    VAR PosteriorFicha =
        CALCULATE (
            [Total Qtde Pendente Insumo],
            FILTER (
                VALUES ( dProdutosFichasTecnicas ),
                dProdutosFichasTecnicas[DataEntrega] > [Next Sexta]
            )
        )
    VAR SaldoParcialFicha = SaldoInicialFicha
        - ( SegundaFicha + TercaFicha
        + QuartaFicha
        + QuintaFicha
        + SextaFicha
        + PosteriorFicha )
    VAR EstoqueMinimoFicha =
        CALCULATE (
            SUM ( dProdutosMRP[EstoqueMinimo] ),
            VALUES ( dProdutosFichasTecnicas )
        )
    VAR Consumo30DiasFicha =
        CALCULATE ( SUM ( dConsumo01M[Qtde] ) * -1, VALUES ( dProdutosFichasTecnicas ) )
    VAR QtdeTransitoFicha =
        CALCULATE (
            SUM ( dOCPendentes[QtdeReceber] ),
            VALUES ( dProdutosFichasTecnicas )
        )
    VAR QtdeOPAbertaFicha =
        CALCULATE (
            SUM ( dOPPendentes[QtdePendente] ),
            VALUES ( dProdutosFichasTecnicas )
        )
    VAR NecessidadeFicha = ( Consumo30DiasFicha - QtdeTransitoFicha
        - QtdeOPAbertaFicha )
    RETURN
        IF (
            SaldoParcialFicha <= EstoqueMinimoFicha,
            IF ( NecessidadeFicha < 0, BLANK (), NecessidadeFicha ),
            BLANK ()
        )
    

     

    Regards