Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more
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"
The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!
| User | Count |
|---|---|
| 41 | |
| 38 | |
| 36 | |
| 31 | |
| 28 |
| User | Count |
|---|---|
| 128 | |
| 88 | |
| 79 | |
| 68 | |
| 63 |