Where do you go when you need to create a simple support table in Power BI? I usually prefer the Power Query Editor and use 'Enter Data' option. But what other options do we have? Would you like to find out? Then you've come to the right place!
Other than Power Query Editor, we also have options in DAX to create a support table, and I am going to look into them one by one. Let's say I want to create a support table for color codes that I use in my report. First I am going to do it with Power Query Editor.
After clicking 'Enter Data' at Power Query Editor, we get a new window where we can edit cells like in Excel. I use this option most of the time because it's easy to do some changes later, from source settings. So how do we do the same thing in DAX? To have exactly the same table by using DAX, we need to click on 'New Table' on Power BI Desktop and write the formula below:
Well, it's not "exactly the same". Power BI gave default column names by itself because with this method there is no room for column names in the formula. But they can be changed by clicking on default names. The important detail to remember, you need to have the same structure for every row, otherwise, it creates an error. What makes this option better than entering data at Query Editor is you can write DAX expressions within this table.
The other option to create the same table requires using ROW and UNION function together. This one also allows users to write functions and we are able to name our columns within the formula. If you have a long list of columns and don't want to change them later, this option might be preferable. The important thing to remember while using UNION is, the table should have the same number of columns and they should be in the same order.
The last function that I'd like to mention is called DATATABLE:
DATATABLE (ColumnName1, DataType1, ColumnName2, DataType2...,
{{Value1, Value2...}, {ValueN, ValueN+1...}...})
The beauty of the DATATABLE function is: it not only lets you name the columns but also allows you to choose the data type for your columns. This is not an option for the methods I have mentioned above. Integer, Double, String, Boolean, Currency, and Datetime are the data types that can be chosen. By the way, Double stands for decimal numbers. Other than that, missing values are treated identically to BLANK().
The downside of this approach is using DAX functions with it isn't possible. So which one is the best? You name it if you were able to decide because I wasn't. When I need a support table next time, my choice will be depended upon whether I need a DAX formula within the table or not. Like it happens most of the time, the best approach depends on the situation.
Comments