Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreShape the future of the Fabric Community! Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions. Take survey.
Hello - I have 50+ columns that I need to calculate the difference after every 2 columns. Currently I appended my tables in Power Query and it looks like this:
DRAFT | ACTUAL | DRAFT | ACTUAL |
10 | 15 | 20 | 10 |
5 | 4 | 30 | 100 |
1 | 2 | 40 | 50 |
I need it to do this:
DRAFT | ACTUAL | DIFF | DRAFT | ACTUAL | DIFF |
10 | 15 | (5) | 20 | 10 | 10 |
5 | 4 | 1 | 30 | 100 | (70) |
1 | 2 | (1) | 40 | 50 | (10) |
I can add a custom column in Power query but it shows up at the end of the table and then I have to move it. Also, it is very manual and I have to do this for 50+ columns on 50+ files.
Solved! Go to Solution.
Hi ,
Please refer to this:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("JYqxDQAwCMN+ydyhQOkziP/fKEkXK5FdBdtYsBy4lmCDCPQq0Bzeb8lU7dIsnYkEcVjfi+4H", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [DRAFT = _t, ACTUAL = _t, DRAFT.1 = _t, ACTUAL.1 = _t, DRAFT.2 = _t, ACTUAL.2 = _t]),
ColumnNames = Table.ColumnNames(Source),
ChangeType = Table.TransformColumnTypes(Source, List.Transform(ColumnNames, each {_, type number})),
AddDiffColumns = List.Accumulate(
List.Zip({{0..List.Count(ColumnNames)-1}, ColumnNames}),
ChangeType,
(state, current) =>
if Number.Mod(current{0}, 2) = 1 then
let
diffColumnName = "DIFF" & Text.From(Number.IntegerDivide(current{0}, 2) + 1),
draftColumnName = ColumnNames{current{0}-1},
actualColumnName = current{1},
addedDiffColumn = Table.AddColumn(state, diffColumnName, each Record.Field(_, draftColumnName) - Record.Field(_, actualColumnName), type number)
in
addedDiffColumn
else
state
)
in
AddDiffColumns
Best Regards,
Gao
Community Support Team
If there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly.
If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!
How to get your questions answered quickly -- How to provide sample data in the Power BI Forum
I should add that each of my files has a different number of columns as well. So if I can automate to add this difference column for any number of iterations as there is data, that is what I want to do.
Hi ,
Please refer to this:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("JYqxDQAwCMN+ydyhQOkziP/fKEkXK5FdBdtYsBy4lmCDCPQq0Bzeb8lU7dIsnYkEcVjfi+4H", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [DRAFT = _t, ACTUAL = _t, DRAFT.1 = _t, ACTUAL.1 = _t, DRAFT.2 = _t, ACTUAL.2 = _t]),
ColumnNames = Table.ColumnNames(Source),
ChangeType = Table.TransformColumnTypes(Source, List.Transform(ColumnNames, each {_, type number})),
AddDiffColumns = List.Accumulate(
List.Zip({{0..List.Count(ColumnNames)-1}, ColumnNames}),
ChangeType,
(state, current) =>
if Number.Mod(current{0}, 2) = 1 then
let
diffColumnName = "DIFF" & Text.From(Number.IntegerDivide(current{0}, 2) + 1),
draftColumnName = ColumnNames{current{0}-1},
actualColumnName = current{1},
addedDiffColumn = Table.AddColumn(state, diffColumnName, each Record.Field(_, draftColumnName) - Record.Field(_, actualColumnName), type number)
in
addedDiffColumn
else
state
)
in
AddDiffColumns
Best Regards,
Gao
Community Support Team
If there is any post helps, then please consider Accept it as the solution to help the other members find it more quickly.
If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!
How to get your questions answered quickly -- How to provide sample data in the Power BI Forum
User | Count |
---|---|
25 | |
13 | |
12 | |
11 | |
8 |
User | Count |
---|---|
44 | |
27 | |
21 | |
16 | |
12 |