Forum Discussion

AntonioTG's avatar
AntonioTG
New Member
9 years ago
Solved

Line chart slicer

Hello, I am new creating Power BI reports, my apologies if my question sounds stupid.

I am trying to add a line chart tile with 3 lines, that are shown by default. That is "Value1", "Value2" and "Value3" (that have a time series) are added to "Value" field of the LineChart.

I would like to select one of those three lines, so that the diagram shows only the selected one.

Can I add any kind of slicer with 3 elements (Value1, Value2 and Value3), so that when one of those three elements is selected, the drawing is automatically updated with only the line with the values of the selected time series?.

Now, when I add a slicer to the report and add the "ValueX" to the Field of the slicer, all the values are shown. And I do not want this.

Thank you very much!!

  • Hi AntonioTG,

     

    If I understanding correctly, the line chart displays three lines by default without any selection, and if you select a specific value from slicer, this chart should be automatically updated with only the line based on selection.

     

    Below is my test, please review it.

     

    Create an extra table which includes one column to list the available selections in slicer.

     

    Create three measures that will be added into "Value" field of the LineChart. You should change the column name ('total per row[expected]', 'total per row[atual]', 'total per row[Amount]') according to your own scenario.

    Value1 =
    IF (
        LASTNONBLANK ( 'Select'[Select], 1 ) = "Value1",
        LASTNONBLANK ( 'total per row'[expected], 1 ),
        IF (
            ISFILTERED ( 'Select'[Select] ) = FALSE (),
            LASTNONBLANK ( 'total per row'[expected], 1 ),
            BLANK ()
        )
    )
    
    Value2 =
    IF (
        LASTNONBLANK ( 'Select'[Select], 1 ) = "Value2",
        LASTNONBLANK ( 'total per row'[atual], 1 ),
        IF (
            ISFILTERED ( 'Select'[Select] ) = FALSE (),
            LASTNONBLANK ( 'total per row'[atual], 1 ),
            BLANK ()
        )
    )
    
    Value3 =
    IF (
        LASTNONBLANK ( 'Select'[Select], 1 ) = "Value3",
        LASTNONBLANK ( 'total per row'[Amount], 1 ),
        IF (
            ISFILTERED ( 'Select'[Select] ) = FALSE (),
            LASTNONBLANK ( 'total per row'[Amount], 1 ),
            BLANK ()
        )
    )

    I can get the expect line if I select "Value2".

     

    Best regards,
    Yuliana Gu

13 Replies

  • v-yulgu-msft's avatar
    v-yulgu-msft
    Microsoft Employee

    Hi AntonioTG,

     

    If I understanding correctly, the line chart displays three lines by default without any selection, and if you select a specific value from slicer, this chart should be automatically updated with only the line based on selection.

     

    Below is my test, please review it.

     

    Create an extra table which includes one column to list the available selections in slicer.

     

    Create three measures that will be added into "Value" field of the LineChart. You should change the column name ('total per row[expected]', 'total per row[atual]', 'total per row[Amount]') according to your own scenario.

    Value1 =
    IF (
        LASTNONBLANK ( 'Select'[Select], 1 ) = "Value1",
        LASTNONBLANK ( 'total per row'[expected], 1 ),
        IF (
            ISFILTERED ( 'Select'[Select] ) = FALSE (),
            LASTNONBLANK ( 'total per row'[expected], 1 ),
            BLANK ()
        )
    )
    
    Value2 =
    IF (
        LASTNONBLANK ( 'Select'[Select], 1 ) = "Value2",
        LASTNONBLANK ( 'total per row'[atual], 1 ),
        IF (
            ISFILTERED ( 'Select'[Select] ) = FALSE (),
            LASTNONBLANK ( 'total per row'[atual], 1 ),
            BLANK ()
        )
    )
    
    Value3 =
    IF (
        LASTNONBLANK ( 'Select'[Select], 1 ) = "Value3",
        LASTNONBLANK ( 'total per row'[Amount], 1 ),
        IF (
            ISFILTERED ( 'Select'[Select] ) = FALSE (),
            LASTNONBLANK ( 'total per row'[Amount], 1 ),
            BLANK ()
        )
    )

    I can get the expect line if I select "Value2".

     

    Best regards,
    Yuliana Gu

    • Anonymous's avatar
      Anonymous
      Not applicable

       

      Hi v-yulgu-msft

       

      Thank for your solution!

      I was wondering how you could change the formula in order to allow multiple selections.

      Since I am now only able to select one line at the time.

       

      Thanks!

      • Anonymous's avatar
        Anonymous
        Not applicable

        Am I able to select multile slicers items instead of just one at a time?

    • joue's avatar
      joue
      New Member

      Hi

       

      Thanks for the post, it is very helpful!

      However, as I dont fully understand the code as I am uncertain about what the second line ('total per row' [expected],1) means. I believe that this is a column, but is not 'Value 1' only consiting of one column  -->LASTNONBLANK ( 'total per row'[expected], 1 )? What is the purpose of LASTNONBLANK ( 'Select'[Select], 1 ) ?

       

      Kind regards,

  • Hi AntonioTG

     

    If I understand that you are trying to do is using a Disconnected Slicer.

     

    Where when you select a measure that is part of the disconnected slicer, it will then display what you select in your chart?

     

    Is that when you are after?

  • Anonymous's avatar
    Anonymous
    Not applicable

    Could anyone please expand on the possibility of selecting multiple measures in a visual using the above-explained approach?

     

    The most recent answer to the multiple selection question referred to the properties pane which is to my understanding no longer available in the current PBI desktop version. 

    • r4v3n's avatar
      r4v3n
      New Member

      As i was passing by this topic for my own interest, i encountered the same issue and was able to find a solution, here is what you were looking for  : 

       

       

      Value1 =
      IF (
          LASTNONBLANK ( 'Select'[Select], 1 ) = "Value1",
          LASTNONBLANK ( 'total per row'[expected], 1 ),
          IF (
              CONTAINS(ALLSELECTED('Select'[Select]), [Select], "Value1"),
              LASTNONBLANK ( 'total per row'[expected], 1 ),
              BLANK ()
          )
      )

       

       

      This will allow for multiple selections.