Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

SELECTEDVALUE multiple objects

Hello colleagues! Looks like I have a common issue with = SELECTEDVALUE returning only single value, whereas I need multiple values shown: 

Are there any ways to simplify the solutins? I met some with using CONCATENATEX function, but that doesn't quite work:

I would be grateful if you help me with this trouble. 

  • correct, you cannot filter if you use CONCATENATEX.

    For what you want to achieve you need something close to this

     

     

    VAR _Selection = VALUES('NEWDataMonth Current'[Month])
    VAR CurrentCost = 
        IF(
            ISBLANK(SELECTEDVALUE('NEWDataMonth Current'[Month])),
            CALCULATE(
                [MainSumCost],
                FILTER(
                    'DatabaseNEW',
                    'DatabaseNEW'[Source] = SELECTEDVALUE('NEWDataVersion Current'[Source])
                    && 'DatabaseNEW'[Date].[Month] IN _Selection
                )
            ),
            CALCULATE(
                [MainSumCost],
                FILTER(
                    'DatabaseNEW',
                    'DatabaseNEW'[Source] = SELECTEDVALUE('NEWDataVersion Current'[Source])
                    && 'DatabaseNEW'[Date].[Month] = SELECTEDVALUE('NEWDataMonth Current'[Month])
                )
            )
        )
    RETURN
        CurrentCost

     

     

4 Replies

  • Alex87's avatar
    Alex87
    Solution Sage

    correct, you cannot filter if you use CONCATENATEX.

    For what you want to achieve you need something close to this

     

     

    VAR _Selection = VALUES('NEWDataMonth Current'[Month])
    VAR CurrentCost = 
        IF(
            ISBLANK(SELECTEDVALUE('NEWDataMonth Current'[Month])),
            CALCULATE(
                [MainSumCost],
                FILTER(
                    'DatabaseNEW',
                    'DatabaseNEW'[Source] = SELECTEDVALUE('NEWDataVersion Current'[Source])
                    && 'DatabaseNEW'[Date].[Month] IN _Selection
                )
            ),
            CALCULATE(
                [MainSumCost],
                FILTER(
                    'DatabaseNEW',
                    'DatabaseNEW'[Source] = SELECTEDVALUE('NEWDataVersion Current'[Source])
                    && 'DatabaseNEW'[Date].[Month] = SELECTEDVALUE('NEWDataMonth Current'[Month])
                )
            )
        )
    RETURN
        CurrentCost

     

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thank you! That worked perfectly. Have a nice day!

  • Alex87's avatar
    Alex87
    Solution Sage

     

    DAX measure can only retrieve scalar values. CONCATENATEX is the way to go

    This is the pattern to follow:

     

    SelectedMonths = 
    CONCATENATEX(
        VALUES('DateTable'[MonthName]),
        'DateTable'[MonthName],
        ", ",
        'DateTable'[Date]
    )

     

     

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thank you! The issue is, I need to use multiple month to filter other measure:

      But I can't filter with CONTENCATEX function. If possible, share your ideas on this one. Here's the dax code for my measure:

      CurrentCost = IF(
              ISBLANK(SELECTEDVALUE('NEWDataMonth Current'[Month])),
              CALCULATE([MainSumCost],
                  FILTER('DatabaseNEW','DatabaseNEW'[Source] = SELECTEDVALUE('NEWDataVersion Current'[Source]))),
              CALCULATE([MainSumCost],
                  FILTER(DatabaseNEW,DatabaseNEW[Source] = SELECTEDVALUE('NEWDataVersion Current'[Source])),
                  FILTER('DatabaseNEW','DatabaseNEW'[Date].[Month] = SELECTEDVALUE('NEWDataMonth Current'[Month])))
              )