This is just a quick code-share-of-the-day of different scenarios for dynamic type transformation of multiple columns at once.
The syntax to transform the format of 2 columns (“Column1” and “Column2”) in a table (“Source”) looks like this:
Now if you would like to do one of the following:
1. Force all columns of the table to be transformed to one type (text)
The second argument of Table.TransformColumnTypes is a list of lists, whose elements contain 2 arguments: The name of the column to transform and the type to be applied.
For this dynamic approach we start with a list of the table’s column names (Table.ColumnNames) and transfer it magically to a list of list, using List.Transform with an expression with curly brackets again like this: each {_, type text}: This operation iterates through every element of the list (List.Transform) and performs the actions that follow the “each” on every element of the list (which is represented by the underscore: _)
2. Transform all newly added columns of a table to one specific type
Imagine you have a table with different column types where users can add new columns with random names. You want these columns automatically to be converted to text:
Same procedure as the first, just that you need to identify the newly added column names. Therefore you use List.Intersect with the two tables to compare in list-format (curly brackets) as shown in line 3 above.
3. Transform all columns whose name are in a list to one specific type
Let’s close with the easiest case, which you’d probably be able to find out by yourself: Say your query returns a dynamic list somewhere with column names who then shall all be converted to a specific type:
You can directly reference the List as the first argument of the List.Transform-command.
You can download the file here: ChgTypeOfColumns.xlsx
Enjoy & stay queryious
The post Dynamic & bulk type transformation in Power Query, Power BI and M appeared first on The BIccountant.