Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Subtract total from previous values

Hi, I've a table with packageid and expiry date. How to get a total of values where we can substract with the previous value? I need the values in new balance where it filter the max [update] then take the balance minus with [qty]. The next line of it will subtract the previous value according to the chronological [update] with their respective [packageid] and [expirydate].

Notice that in [packageid] for 0901, it has different expirydate so the new balance won't subtract the previous value. TQ!

 

packageidexpirydateupdateqtybalancenew balance
887503/08/202009/07/202090100100-90=10
887503/08/202009/06/20206100100-90-6=4
887503/08/202031/03/20201100100-90-6-1=3
887503/08/202021/01/20201100100-90-6-1-1=2
090131/12/202031/03/2020111-1=0
090103/08/202031/03/20201511-15=-14
  • Anonymous's avatar
    Anonymous
    6 years ago

    HI Anonymous ,

     

    You can try this Calculated Column

     

    New Bal =
    VAR b =
        CALCULATE (
            MAX ( 'Table'[update] ),
            FILTER (
                'Table',
                'Table'[packageid]
                    = EARLIER ( 'Table'[packageid] )
            )
        )
    VAR c = 'Table'[balance] - 'Table'[qty]
    VAR d =
        CALCULATE (
            c,
            'Table'[update] = b
        )
    VAR e =
        SUMX (
            FILTER (
                'Table',
                'Table'[packageid]
                    = EARLIER ( 'Table'[packageid] )
                    && 'Table'[update]
                        > EARLIER ( 'Table'[update] )
            ),
            'Table'[qty]
        )
    RETURN
        IF (
            'Table'[update] = b,
            d,
            c - e
        )

     

     


    Regards,

    Harsh Nathani


    Appreciate with a Kudos!! (Click the Thumbs Up Button)

    Did I answer your question? Mark my post as a solution!

2 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    HI Anonymous ,

     

    You can try this Calculated Column

     

    New Bal =
    VAR b =
        CALCULATE (
            MAX ( 'Table'[update] ),
            FILTER (
                'Table',
                'Table'[packageid]
                    = EARLIER ( 'Table'[packageid] )
            )
        )
    VAR c = 'Table'[balance] - 'Table'[qty]
    VAR d =
        CALCULATE (
            c,
            'Table'[update] = b
        )
    VAR e =
        SUMX (
            FILTER (
                'Table',
                'Table'[packageid]
                    = EARLIER ( 'Table'[packageid] )
                    && 'Table'[update]
                        > EARLIER ( 'Table'[update] )
            ),
            'Table'[qty]
        )
    RETURN
        IF (
            'Table'[update] = b,
            d,
            c - e
        )

     

     


    Regards,

    Harsh Nathani


    Appreciate with a Kudos!! (Click the Thumbs Up Button)

    Did I answer your question? Mark my post as a solution!

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thank you so much! Anonymous  It worked just how I want. Thanks!