Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

DAX Calculate IN

Hello, I'm pretty new to writing DAX.

 

I've created Measure that CALCULATE SUM of VALUE IN specified PERIOD

 

Here is a formula:

Plan III'18 = CALCULATE(
   SUM(Table[Plan]);
   Table[Quarter] IN { "III'2018" }
)

Its calculate sum of values from PLAN = III'2018

This formula works fine, when user selected in slicer Quarter = IV'2018 he could find values of PLAN for Selected QUARTER and see values for Prev Quarter

 

But I want to change behaviour of this Measure to calculate always sum of values from Previous Quarter

 

For example, if user selected in slicer III'2018 (instead of IV'2018) it will show him values for II'2018 (-1 QUARTER)

 

What I have in "Table"

Columns names

  • Subject (char)
  • Quarter (char)
  • Plan (int)
  • Quarter Prev (char) 

 

Thanks in advance 

  • Hi Anonymous,

     

    One sample for your reference.

     

    1. Create a calculated table as below.

     

    Table = UNION(VALUES(Table1[Quarter]),VALUES(Table1[Quarter Prev]))

    2. Creat a measure to get the result as we need.

     

    Measure = 
    VAR _sele =
        SELECTEDVALUE ( 'Table'[Quarter] )
    VAR _pre =
        SWITCH (
            _sele,
            "IV'2018", "III'2018",
            "III'2018", "II'2018",
            "II'2018", "I'2018",
            "I'2018", "IV'2017"
        )
    RETURN
        IF (
            ISBLANK ( _sele ),
            BLANK (),
            CALCULATE ( SUM ( Table1[Plan] ), FILTER ( Table1, Table1[Quarter] = _pre ) )
        )
    

    Also please find the pbix as attached.

     

    Regards,

    Frank

1 Reply

  • v-frfei-msft's avatar
    v-frfei-msft
    Icon for Community Support rankCommunity Support

    Hi Anonymous,

     

    One sample for your reference.

     

    1. Create a calculated table as below.

     

    Table = UNION(VALUES(Table1[Quarter]),VALUES(Table1[Quarter Prev]))

    2. Creat a measure to get the result as we need.

     

    Measure = 
    VAR _sele =
        SELECTEDVALUE ( 'Table'[Quarter] )
    VAR _pre =
        SWITCH (
            _sele,
            "IV'2018", "III'2018",
            "III'2018", "II'2018",
            "II'2018", "I'2018",
            "I'2018", "IV'2017"
        )
    RETURN
        IF (
            ISBLANK ( _sele ),
            BLANK (),
            CALCULATE ( SUM ( Table1[Plan] ), FILTER ( Table1, Table1[Quarter] = _pre ) )
        )
    

    Also please find the pbix as attached.

     

    Regards,

    Frank