Forum Discussion

erhang's avatar
erhang
Helper II
8 years ago
Solved

dax formula help (Distribution)

Hi dear Power BI Family ;   İ am happy to be here to take always support from you  , so thanks in advance to everybody.   İ need your helps one more time to create a formula about below situation...
  • Zubair_Muhammad's avatar
    8 years ago

    HI erhang

     

    Try this MEASURE

     

    Distributed Stocks =
    VAR stock_to_distirubute =
        CALCULATE (
            SUM ( Table2[Stock Qty] ),
            CROSSFILTER ( Table2[Product], Table1[Product], BOTH )
        )
    VAR Cumulativestock =
        CALCULATE (
            SUM ( Table1[Requested Qty] ),
            FILTER (
                ALLEXCEPT ( Table1, Table1[Product] ),
                Table1[Rquested Delivery Date]
                    <= SELECTEDVALUE ( Table1[Rquested Delivery Date] )
            )
        )
    VAR myqty =
        IF (
            Cumulativestock > stock_to_distirubute,
            SELECTEDVALUE ( Table1[Requested Qty] )
                - ( Cumulativestock - stock_to_distirubute ),
            SELECTEDVALUE ( Table1[Requested Qty] )
        )
    RETURN
        IF ( myqty < 0, 0, myqty )
  • Zubair_Muhammad's avatar
    Zubair_Muhammad
    8 years ago

    Hi erhang

     

    To solve this situation, first add a calculated column as follows

     

    Adjusted Delivery Date =
    Table1[Rquested Delivery Date]
        + Table1[Document Number] / 10000

    Now you can revise the original measure by replacing Requested Delivery Date with Adjsuted Delivery Date

    i.e.

     

    Distributed Stocks =
    VAR stock_to_distirubute =
        CALCULATE (
            SUM ( Table2[Stock Qty] ),
            CROSSFILTER ( Table2[Product], Table1[Product], BOTH )
        )
    VAR Cumulativestock =
        CALCULATE (
            SUM ( Table1[Requested Qty] ),
            FILTER (
                ALLEXCEPT ( Table1, Table1[Product] ),
                Table1[Adjusted Delivery Date]
                    <= SELECTEDVALUE ( Table1[Adjusted Delivery Date] )
            )
        )
    VAR myqty =
        IF (
            Cumulativestock > stock_to_distirubute,
            SELECTEDVALUE ( Table1[Requested Qty] )
                - ( Cumulativestock - stock_to_distirubute ),
            SELECTEDVALUE ( Table1[Requested Qty] )
        )
    RETURN
        IF ( myqty < 0, 0, myqty )