Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hi! I have some tables with different number of column with prefix "Level"
Example:
Table1 - Level1, Level2, Level3
Table2 - Level1, Level2, Level3, Level4
I want make sure all tables have Level1 ~ Level10.
How can I do that with powerquery? Thanks!
Solved! Go to Solution.
Hi @Anonymous
What are the values in those newly created columns? Here is one sample to have the same value with the column name
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WKkktLlHSwUbFxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [level1 = _t, level2 = _t, level3 = _t, level4 = _t]),
columnList = {"level1","level2","level3","level4","level5","level6","level7","level8","level9","level10"},
fxAddColumn = (T as table, N as number) =>
[
newColumns=List.Difference(columnList, Table.ColumnNames(Source)),
counter = List.Count(newColumns),
columnName = newColumns{N},
tempTable = Table.AddColumn(T, columnName, each columnName),
result = if N>= counter-1 then tempTable else @fxAddColumn(tempTable,N+1)
][result],
Custom = fxAddColumn(Source,0)
in
Custom
let
Source = #table(List.Transform({1..10}, each "Level" & Text.From(_)), {}),
Other = #table({"Level1","Level3","Level5"},{{1,3,5}}),
Appended = Source & Other
in
Appended
Thanks to the great efforts by MS engineers to simplify syntax of DAX! Most beginners are SUCCESSFULLY MISLED to think that they could easily master DAX; but it turns out that the intricacy of the most frequently used RANKX() is still way beyond their comprehension! |
DAX is simple, but NOT EASY! |
Hi @Anonymous
What are the values in those newly created columns? Here is one sample to have the same value with the column name
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WKkktLlHSwUbFxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [level1 = _t, level2 = _t, level3 = _t, level4 = _t]),
columnList = {"level1","level2","level3","level4","level5","level6","level7","level8","level9","level10"},
fxAddColumn = (T as table, N as number) =>
[
newColumns=List.Difference(columnList, Table.ColumnNames(Source)),
counter = List.Count(newColumns),
columnName = newColumns{N},
tempTable = Table.AddColumn(T, columnName, each columnName),
result = if N>= counter-1 then tempTable else @fxAddColumn(tempTable,N+1)
][result],
Custom = fxAddColumn(Source,0)
in
Custom
I prefer all values of new created columns are setted as null. Thanks!
Hi @Anonymous
modify this line a little bit
tempTable = Table.AddColumn(T, columnName, each null),
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.