PowerQuery: Row with same ID, CONCATENATE image column into one row.

santnok

Board Regular
Joined
Jan 10, 2014
Messages
97
Hi

In PowerQuery I have a tabel that looks like the tabel under (TBL1). if you see under the ItemNo I have 1 or several same ID. So I need help to
make a colum that takes e.g. ItemNo: SHD3061 that have 2 rows of images and concatenate. So my result I hope to achieve is this (TBL2)

TBL2
ItemNoImages
SHD3061/photos/SHD3061/SHD3061.jpg, /photos/SHD3061/SHD3061_4.png

<tbody>
</tbody>

From the tabel under you can see that the Image can be more than 1 for a ItemNo.

TBL1: Here is my result today I hope to fix
ItemNoImages
SHD3061/photos/SHD3061/SHD3061.jpg
SHD3061/photos/SHD3061/SHD3061_4.png
SHD3062/photos/SHD3062/SHD3062.jpg
SHD3062/photos/SHD3062/SHD3062_pack.png
SHD3063/photos/SHD3063/SHD3063.jpg
SHD3063/photos/SHD3063/SHD3063_4.png
SHD3071/photos/SHD3071/SHD3071.jpg
SHD3071/photos/SHD3071/SHD3071_1.png
SHD3072/photos/SHD3072/SHD3072.jpg
SHD3072/photos/SHD3072/SHD3072_1.png
SHD3361/photos/SHD3361/SHD3361.jpg
SHD3361/photos/SHD3361/SHD3361_4.png
SHD3362/photos/SHD3362/SHD3362.jpg
SHD3362/photos/SHD3362/SHD3362_pack.png
SHD3461/photos/SHD3461/SHD3461.jpg
SHD3461/photos/SHD3461/SHD3461_4.png
SHD3462/photos/SHD3462/SHD3462.jpg
SHD3462/photos/SHD3462/SHD3462_pack.png
SHD3561/photos/SHD3561/SHD3561.jpg
SHD3561/photos/SHD3561/SHD3561_4.png
SHD3562/photos/SHD3562/SHD3562.jpg
SHD3562/photos/SHD3562/SHD3562_4.png
SHD3661/photos/SHD3661/SHD3661.jpg
SHD3661/photos/SHD3661/SHD3661_4.png
SHD3662/photos/SHD3662/SHD3662.jpg
SHD3662/photos/SHD3662/SHD3662_pack.png
SHD3862/photos/SHD3862/SHD3862.jpg
SHD3862/photos/SHD3862/SHD3862_Box.png
SHD3863/photos/SHD3863/SHD3863.jpg
SHD3863/photos/SHD3863/SHD3863_Box.png
SWB7140/photos/SWB7140/SWB7140.jpg
SWB7140/photos/SWB7140/SWB7140_0.jpg
SWB7140/photos/SWB7140/SWB7140_1.jpg
SWB7140/photos/SWB7140/SWB7140_10.jpg
SWB7140/photos/SWB7140/SWB7140_11.jpg
SWB7140/photos/SWB7140/SWB7140_12.jpg
SWB7140/photos/SWB7140/SWB7140_13.jpg
SWB7140/photos/SWB7140/SWB7140_14.jpg
SWB7140/photos/SWB7140/SWB7140_15.jpg

<tbody>
</tbody>

Hope it is possible to do without coding directly in the Advanced Editor

Hope somone can help me out here

Thanks for all help :)
 

Excel Facts

Convert text numbers to real numbers
Select a column containing text numbers. Press Alt+D E F to quickly convert text to numbers. Faster than "Convert to Number"

sandy666

Banned - Rules violations
Joined
Oct 24, 2015
Messages
7,497
try

Code:
[SIZE=1]// Table1
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Grouped Rows" = Table.Group(Source, {"ItemNo"}, {{"Count", each _, type table}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Images", each Table.Column([Count],"Images")),
    #"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Images", each Text.Combine(List.Transform(_, Text.From), ", "), type text})
in
    #"Extracted Values"[/SIZE]

without Advanced Editor ;)
 

santnok

Board Regular
Joined
Jan 10, 2014
Messages
97
Thanks for the reply, can you please help me out when I have this code before in Advanced Editor
How to place your code in my code :)

Code:
let
    Kilde = Xml.Tables(Web.Contents("https://xxxxxxxxxxxxxxxxxxx.xml")),
    Table1 = Kilde{1}[Table],
    Table0 = Table1{0}[Table],
    #"Utvidet Picture" = Table.ExpandTableColumn(Table0, "Picture", {"Property"}, {"Property"}),
    #"Utvidet Property" = Table.ExpandTableColumn(#"Utvidet Picture", "Property", {"Attribute:Value"}, {"Attribute:Value"}),
    #"Renamed Columns" = Table.RenameColumns(#"Utvidet Property",{{"Attribute:Value", "Image"}}),
    #"Removed Other Columns" = Table.SelectColumns(#"Renamed Columns",{"ItemNo", "Image"})
in
    #"Removed Other Columns"

I see that in the code it shows some norwegian words.

Kilde = Source
Utvidet = Extended

Thanks :)
 

sandy666

Banned - Rules violations
Joined
Oct 24, 2015
Messages
7,497
if the result of your M-code is your table from post#1 add last 3 lines from my post to your M-code, eg.

Code:
[SIZE=1]let
    Kilde = Xml.Tables(Web.Contents("https://xxxxxxxxxxxxxxxxxxx.xml")),
    Table1 = Kilde{1}[Table],
    Table0 = Table1{0}[Table],
    #"Utvidet Picture" = Table.ExpandTableColumn(Table0, "Picture", {"Property"}, {"Property"}),
    #"Utvidet Property" = Table.ExpandTableColumn(#"Utvidet Picture", "Property", {"Attribute:Value"}, {"Attribute:Value"}),
    #"Renamed Columns" = Table.RenameColumns(#"Utvidet Property",{{"Attribute:Value", "Image"}}),
    #"Removed Other Columns" = Table.SelectColumns(#"Renamed Columns",{"ItemNo", "Image"}),
[COLOR="#0000FF"]    #"Grouped Rows" = Table.Group(#"Removed Other Columns", {"ItemNo"}, {{"Count", each _, type table}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Images", each Table.Column([Count],"Images")),
    #"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Images", each Text.Combine(List.Transform(_, Text.From), ", "), type text})
in
    #"Extracted Values"[/COLOR][/SIZE]

but you should check proper syntax (you need to use Advanced Editor :) :) :) )

or
with your M-code
- group by ItemNo
- add custom column with Table.Column(....
- expand List column with delimiter: ", " (second option)

btw. your code has Image but your table from post#1 has Images
 
Last edited:

santnok

Board Regular
Joined
Jan 10, 2014
Messages
97
Hi

Thanks, now I get an Error

See the picture here http://servyou.net/Capture.PNG

My code is now

Code:
let
    Kilde = Xml.Tables(Web.Contents("https://xxxxxxxxxxxx.xml")),
    Table1 = Kilde{1}[Table],
    Table0 = Table1{0}[Table],
    #"Utvidet Picture" = Table.ExpandTableColumn(Table0, "Picture", {"Property"}, {"Property"}),
    #"Utvidet Property" = Table.ExpandTableColumn(#"Utvidet Picture", "Property", {"Attribute:Value"}, {"Attribute:Value"}),
    #"Renamed Columns" = Table.RenameColumns(#"Utvidet Property",{{"Attribute:Value", "Image"}}),
    #"Removed Other Columns" = Table.SelectColumns(#"Renamed Columns",{"ItemNo", "Image"}),
    #"Grouped Rows" = Table.Group(#"Removed Other Columns", {"ItemNo"}, {{"Count", each _, type table}}),
    #"Added Custom" = Table.AddColumn(#"Grouped Rows", "Images", each Table.Column([Count],"Images")),
    #"Extracted Values" = Table.TransformColumns(#"Added Custom", {"Images", each Text.Combine(List.Transform(_, Text.From), ", "), type text})
in
    #"Extracted Values"

Thanks for help :)
 

santnok

Board Regular
Joined
Jan 10, 2014
Messages
97
Hi again,

I found what is wrong, see in your code that you have writen Images, I changed to Image and it work :)
So thank you verry much for the help :) Have a nice day :)

Sorry, dident see btw in your last post :)
 
Last edited:

santnok

Board Regular
Joined
Jan 10, 2014
Messages
97
Hi again

Have a follwup question. If I want to seperate the images into new column for each image insted of have them comma seperated in one column, is that possible?

Best Regard
Roy
 

sandy666

Banned - Rules violations
Joined
Oct 24, 2015
Messages
7,497
I want to seperate the images into new column for each image insted of have them comma seperated in one column

from the ribbon use Split Column with delimiter ", " without quotation marks
 
Last edited:

Forum statistics

Threads
1,170,960
Messages
5,872,997
Members
432,955
Latest member
minhnhat2504

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Top