Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Current vs Previous value, not dependent on base value

Hi,

 

I'm wondering if there's a way for me to have a chart displaying one value over time, with a bar below showing the difference between the current and previous value, BUT i want to be able to change the base value between different values?

 

Let's say I have 15 different sets of values that I want to present this way, so instead of me making 15 different calculated measures, one for each value, I wonder if there's some sort of way for me to make a column/measure or something that does what I'm after? And then I can just click and change between the values that I want.

 

The only constant are the time values. 

 

Hope this made any sense and thanks for any help.

 

To clarify: Ability to switch between different values to present both line for values and bars for increase or decrease of the value. 

 

Thanks

  • dedelman_clng's avatar
    dedelman_clng
    7 years ago

    Hi Anonymous

     

    I gave you some erroneous code previously (I hadn't tested it - i was making extrapolations from other similar work I've done, but I had some false assumptions).

     

    Points 1-3 in the above reply still hold - please review them.  However, now we need to modify the measures.

     

    For transparency, we'll use 3 measures. I'll talk about where they can be combined afterwards

     

    TodaysValue= 
        SWITCH(
            [MType];
            "BJ-HÖ1"; AVERAGE(Blad1[BJ-HÖ1]);
            "BJ-MÄ"; AVERAGE(Blad1[BJ-MÄ]);
            "BJ-TS1"; AVERAGE(Blad1[BJ-TS1]);
            etc
        )
    
    PrevDayValue = CALCULATE([TodaysValue]; PREVIOUSDAY(DateTimeTab[Date]))
    
    Measure Delta = [TodaysValue] - [PrevDayValue]

    The mistake was thinking we could store some of the complex code in variables and use the code again further down in the measure.  I think we can really only have a minimum of 2 measures, unless you want to replicate a lot of code:

     

    TodaysValue= 
        SWITCH(
            [MType];
            "BJ-HÖ1"; AVERAGE(Blad1[BJ-HÖ1]);
            "BJ-MÄ"; AVERAGE(Blad1[BJ-MÄ]);
            "BJ-TS1"; AVERAGE(Blad1[BJ-TS1]);
            etc
        )
    
    Measure Delta = 
    //NOTE That variables are not needed here - just showing for illustrative purposes VAR __Todaysvalue = [TodaysValue]
    VAR __PrevValue = CALCULATE([TodaysValue], PREVIOUSDAY(DateTimeTab[Date]) RETURN __Todaysvalue - __PrevValue

    //You could do the following without any variables and get the same results
    //Measure Delta = [TodaysValue] - CALCULATE([TodaysValue], PREVIOUSDAY(DateTimeTab[Date])

    Hope this finally gets you to where you need to be.  Sorry for the earlier confusion.

     

    David

24 Replies

  • dedelman_clng's avatar
    dedelman_clng
    Community Champion

    If I understand your issue correctly, try this pattern:

     

    Slicer/button to choose your value

    MType = SELECTEDVALUE(Slicer[Field])

    Measure for bar or line

    Bar/Line Value = 
    SWITCH (
        [MType],
        "Value1", [Measure 1],
        "Value2", [Measure 2],
    ...
    )

    Hope this helps

    David

    • Anonymous's avatar
      Anonymous
      Not applicable
      Spoiler

      dedelman_clng wrote:

      If I understand your issue correctly, try this pattern:

       

      Slicer/button to choose your value

      MType = SELECTEDVALUE(Slicer[Field])

      Measure for bar or line

      Bar/Line Value = 
      SWITCH (
          [MType],
          "Value1", [Measure 1],
          "Value2", [Measure 2],
      ...
      )

      Hope this helps

      David


      Thank you, that will for sure help me with one part of my problem, but I'm still unsure as how to get the value difference working?