Forum Discussion

proavinash's avatar
proavinash
Helper I
1 year ago
Solved

The expression refers to multiple columns. Multiple columns cannot be converted to a scalar value.

please suggest a solution.

  • Hi proavinash,

    Thank you for reaching out to the Microsoft Fabric Forum Community.

     

    The UNION function returns a table as a result, so rather than creating a measure, try creating a calculated table.

    Please refer the below Document:
    UNION function (DAX) - DAX | Microsoft Learn

     

    If this post helps, then please give us ‘Kudos’ and consider Accept it as a solution to help the other members find it more quickly.

     

    Thank you.

7 Replies

  • Hi proavinash ,

     

    The error occurs because UNION() only accepts two tables at a time, but you're passing in three ADDCOLUMNS() results directly. DAX cannot interpret more than two tables unless you nest the UNION() calls. To fix it, you need to combine the second and third ADDCOLUMNS() calls using UNION() first, then combine that result with the first one. Here's the corrected version of your DAX:

    MTD/QTD/YTD =
    var TodayDate = TODAY()
    var startyear = CALCULATE(STARTOFYEAR(SaleDump[Date].[Date]), YEAR(SaleDump[Date]) = YEAR(TodayDate))
    var startquarter = CALCULATE(STARTOFQUARTER(SaleDump[Date].[Date]), YEAR(SaleDump[Date]) = YEAR(TodayDate), QUARTER(SaleDump[Date]) = QUARTER(TodayDate))
    var startmonth = CALCULATE(STARTOFMONTH(SaleDump[Date].[Date]), YEAR(SaleDump[Date]) = YEAR(TodayDate), MONTH(SaleDump[Date]) = MONTH(TodayDate))
    var result =
        UNION(
            ADDCOLUMNS(CALENDAR(startyear, TodayDate), "Selection", "YTD"),
            UNION(
                ADDCOLUMNS(CALENDAR(startquarter, TodayDate), "Selection", "QTD"),
                ADDCOLUMNS(CALENDAR(startmonth, TodayDate), "Selection", "MTD")
            )
        )
    RETURN
        result
    

    This corrects the structure so each UNION() has exactly two inputs and avoids the scalar value conversion error.

     

    Best regards,

      • v-saisrao-msft's avatar
        v-saisrao-msft
        Community Support

        Hi proavinash,

        Thank you for reaching out to the Microsoft Fabric Forum Community.

         

        The UNION function returns a table as a result, so rather than creating a measure, try creating a calculated table.

        Please refer the below Document:
        UNION function (DAX) - DAX | Microsoft Learn

         

        If this post helps, then please give us ‘Kudos’ and consider Accept it as a solution to help the other members find it more quickly.

         

        Thank you.

  • v-saisrao-msft's avatar
    v-saisrao-msft
    Community Support

    Hi proavinash,

    May I ask if you have resolved this issue? If so, please mark the helpful reply and accept it as the solution. This will be helpful for other community members who have similar problems to solve it faster.

    Thank you.

  • v-saisrao-msft's avatar
    v-saisrao-msft
    Community Support

    Hi proavinash,

     

    We haven’t heard back from you regarding your issue. If it has been resolved, please mark the helpful response as the solution and give a ‘Kudos’ to assist others. If you still need support, let us know.

     

    Thank you.