Forum Discussion

jinny_le's avatar
jinny_le
Frequent Visitor
6 years ago
Solved

Display distance between 2 lines chart as a third line

hi PBI guru, 

I would like to seek help. I have daily sales data of 2 products. I want to display the daily sale of each product and also the sales difference between them in the same line chart. Anyone has an idea how do to it? Thank you so much! 

 

  • Hi jinny_le 

    If you'd like to show 2 products on a line chart at one time, you could add "product name" column into slicer, then select two products each time.

    Or you could create tables and add columns to slicer.

    product slicer1 = VALUES('Table'[product])
    
    product slicer2 = VALUES('Table'[product])
    
    Measure = CALCULATE(SUM('Table'[price]),FILTER('Table','Table'[product]=[Selected1]||'Table'[product]=[Selected2]))

     

    Do you need to add another line to this line chart which shows the difference of price between two products?

    Based on my experience, if you add columns to "legend" field of a line chart,

    it is impossible to add more than one measure/column into "Values" field,

    thus the line numbers showing one the visual are detemined by the legend.

     

    Best Regards

    Maggie
    Community Support Team _ Maggie Li
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    ddd

5 Replies

  • For a difference you have to create a measure filtering each one of them

    calculate(Avergae(table[price]),table[product]="BABA") -calculate(Avergae(table[price]),table[product]="JD")

    • jinny_le's avatar
      jinny_le
      Frequent Visitor

      hi amitchandak , 

      Thanks for your reply. If i have hundreds of product (but I only compare 2 of a time) - is there a more efficient way than listing each of the product and calculate the average for each of them? Thanks! 

      • amitchandak's avatar
        amitchandak
        Icon for Super User rankSuper User

        jinny_le ,

        Assume you are selecting both in one slicer

        Measure =
        var _min = minx(Product,Product[Name])
        var _max = maxx(Product,Product[Name])
        return
        calculate(Avergae(table[price]),Product[Name]=_min) -calculate(Avergae(table[price]),Product[Name]=_max)

         

        Or

        Measure =
        var _min = minx(Product,Product[Name])
        var _max = maxx(Product,Product[Name])
        return
        calculate(Avergae(table[price]),filter(all(Product),Product[Name]=_min)) -calculate(Avergae(table[price]),filter(all(Product),Product[Name]=_max))

         

        The product is the dimension table for the product. If you do not have one create, otherwise this kind calculation will bring challenges with other filters.

         

        if you need more help make me @

        Appreciate your Kudos.

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

    Hi jinny_le 

    If you'd like to show 2 products on a line chart at one time, you could add "product name" column into slicer, then select two products each time.

    Or you could create tables and add columns to slicer.

    product slicer1 = VALUES('Table'[product])
    
    product slicer2 = VALUES('Table'[product])
    
    Measure = CALCULATE(SUM('Table'[price]),FILTER('Table','Table'[product]=[Selected1]||'Table'[product]=[Selected2]))

     

    Do you need to add another line to this line chart which shows the difference of price between two products?

    Based on my experience, if you add columns to "legend" field of a line chart,

    it is impossible to add more than one measure/column into "Values" field,

    thus the line numbers showing one the visual are detemined by the legend.

     

    Best Regards

    Maggie
    Community Support Team _ Maggie Li
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    ddd

    • jinny_le's avatar
      jinny_le
      Frequent Visitor

      hi Maggie v-juanli-msft 

      Thanks for your detailed guiande. Yes i need to add the price-difference line and i understand the limitation you were talking about. But this output is good enough, so i'll just go ahead with this for now. Thank you 🙂