Learn from the best! Meet the four finalists headed to the FINALS of the Power BI Dataviz World Championships! Register now
Hi, I found out recently that function Table.TransformColumns lets you specify a 3rd parameter to identify the data type of the transformed column. However that parameter doesn't seem to react the way I expected.
Here's 3 queries illustrating my issue.
Test 1
let
Source = Table.FromColumns({{1,2,3}}, {"Test"}),
#"Transform column" = Table.TransformColumns(Source, {"Test", each _, type number})
in
#"Transform column"
letTest 2
Source = Table.FromColumns({{1,2,3}}, {"Test"}),
#"Transform column" = Table.TransformColumns(Source, {"Test", each Number.From(_)})
in
#"Transform column"Test 3
let
Source = Table.FromColumns({{1,2,3}}, {"Test"}),
#"Transform column" = Table.TransformColumns(Source, {"Test", each Number.From(_), type number})
in
#"Transform column"Out of those 3 queries, only Test 3 successfully converts the column to type number, the first 2 keep the column as type any. So it seems you have to explicitly cast values to the desired type AND specify that type in the 3rd parameter. I would have thought only specifying the type as an additional parameter (Test 1) would be sufficient to convert the column (as would be the case with function Table.AddColumn).
Any explanation on that? Why would that behaviour differ from Table.AddColumn?
You want to refer to the column rather than each record. Refer to below. To my understanding, the third paramater is used to handle null values.
let
Source = Table.FromColumns({{1,2,3}}, {"Test"}),
#"Transform column" = Table.TransformColumns(Source, {"Test", Number.From})
in
#"Transform column"
| User | Count |
|---|---|
| 50 | |
| 38 | |
| 29 | |
| 18 | |
| 17 |
| User | Count |
|---|---|
| 67 | |
| 58 | |
| 38 | |
| 21 | |
| 20 |