Forum Discussion

waleed111's avatar
waleed111
Helper V
5 years ago
Solved

Table and column

Column = SELECTCOLUMNS('List View', "inventory", 'List View'[Date-Time of Entry in Inventory])
when i use the above formula as column it give me this error:
A table of multiple values was supplied where a single value was expected.
but when use it as table
table = SELECTCOLUMNS('List View', "inventory", 'List View'[Date-Time of Entry in Inventory])
it work wethout problem, what is the reason?

2 Replies

  • waleed111 , Because selectcolumns return table. And when you create a new column it expects a new column value only one unique value. So new table it works and New columns it gives an error

    https://docs.microsoft.com/en-us/dax/selectcolumns-function-dax

    https://www.youtube.com/watch?v=TtkdZ2jbffA

     

    New table is working because it expects a table

    table = SELECTCOLUMNS('List View', "inventory", 'List View'[Date-Time of Entry in Inventory])

     

    This function can now return a new column

    Column = maxx(SELECTCOLUMNS('List View', "inventory", 'List View'[Date-Time of Entry in Inventory]),[Date-Time of Entry in Inventory])

  • Greg_Deckler's avatar
    Greg_Deckler
    Community Champion

    waleed111 - There are three primary kinds of things that you can create in Power BI

    1. Column
    2. Measure
    3. Table

    Columns and Measures formulas need to return single value (a scalar) while tables formulas need to return a table of values. When you are having problems with DAX formulas like this, it is always good to check the documentation:

    https://docs.microsoft.com/en-us/dax/selectcolumns-function-dax

    Here you can see:

    Return value

    A table with the same number of rows as the table specified as the first argument. The returned table has one column for each pair of <name>, <scalar_expression> arguments, and each expression is evaluated in the context of a row from the specified <table> argument.

     

    Therefore, for the column formula, you will need to aggregate the table or perform some calculation that returns a scalar value, like wrapping that statement with a COUNTROWS function or one of the X iterators like SUMX, AVERAGEX, etc.