Forum Discussion
How to append multiple columns from inside one table
- 6 years ago
Hi apoje
I am not sure why you've completely ignored my solution all along 🤔. It does exactly what you showed in your first post in a simple way. If the base table is "tbl_bundle" in the files you've shared, you can create a blank query with the following M code and you'll get the result. It is the same as I posted a couple of days ago already:
let Source = tbl_bundle, #"Removed Columns" = Table.RemoveColumns(Source,{"SKU-bundleID"}), ExtractColumns_ = Table.ToColumns(#"Removed Columns"), ContentCols_ = List.Combine(List.Alternate(ExtractColumns_,1,1,1)), QuantityCols_ = List.Combine(List.Alternate(ExtractColumns_,1,1,0)), final_ = Table.FromColumns({ContentCols_, QuantityCols_}, {"ContentAll", "QuantityAll"}) in final_Please mark the question solved when done and consider giving kudos if posts are helpful.
Contact me privately for support with any larger-scale BI needs, tutoring, etc.
Cheers
Hi! i don't thinks this is just column. Your idea is whole new table. You can add a new step on your power query that will transform the complete table or create a blank query to query your table creating a second one with the result. Let's assume your table name is Table1. Now you can create a new blank query with a code that should be like this:
= Table.Combine({
Table.RenameColumns(
Table.SelectColumns(Table1, "idcontent1", "idquantity1")
,{{"idcontent1", "idcontent"},{"idquantity1", "idquantity"} })
,
Table.RenameColumns(
Table.SelectColumns(Table1, "idcontent2", "idquantity2")
,{{"idcontent2", "idcontent"},{"idquantity2", "idquantity"} })
,
Table.RenameColumns(
Table.SelectColumns(Table1, "idcontentN", "idquantityN")
,{{"idcontentN", "idcontent"},{"idquantityN", "idquantity"} })
})
Table.Combine is for append. Table.RenameColumns to append the same columns together. Table.SelectColumns is to just select the columns you will use in the append.
Hope this helps,
Hi apoje,
copy this M code in a blank query to see the steps starting from your initial example
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("XdJLCgMxDAPQu2Q9hdhxfuseY5hFP4dob98Go9aaXQTRIwHte7rdH09JW3q9r3JZB8me1JOH4kE9mSdJx+aAAtBwSz0BUAKUgQJgHcQAlAisUNAv3Df0jfoW+0YPMAYqgEpAjUAloDLQADQCWgRa/EHjfke/U7/HfqcHdAYGgEHAiMAgYDAwAUwCZgRm/MHkPobznVEmweNvSJmXlE/Kf4zCCs/xtEcM8vgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"bundle-id" = _t, #"content1-id" = _t, quantity1 = _t, #"content2-id" = _t, quantity2 = _t, #"content3-id" = _t, quantity3 = _t, #"content4-id" = _t, quantity4 = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"bundle-id", type text}, {"content1-id", type text}, {"quantity1", Int64.Type}, {"content2-id", type text}, {"quantity2", Int64.Type}, {"content3-id", type text}, {"quantity3", Int64.Type}, {"content4-id", type text}, {"quantity4", Int64.Type}}),
#"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"bundle-id"}),
ExtractColumns_ = Table.ToColumns(#"Removed Columns"),
ContentCols_ = List.Combine(List.Alternate(ExtractColumns_,1,1,1)),
QuantityCols_ = List.Combine(List.Alternate(ExtractColumns_,1,1,0)),
final_ = Table.FromColumns({ContentCols_, QuantityCols_})
in
final_
Please mark the question solved when done and consider giving kudos if posts are helpful.
Contact me privately for support with any larger-scale BI needs, tutoring, etc.
Cheers