答案1
您可以使用Power Query
Excel 2010+ 中的
- 选择表格中的一个单元格
- 数据 / 获取和转换 / 来自表/范围
- 您可以通过 Power Query UI 完成所有操作
算法
- 选择
sku
列并“向下填充” Group By
SKU 操作All Rows
- 提取
_media_attribute_id
- 由于这些都是相同的,我们只提取第一个。
- 提取
List
_image_media 列的元素 - 从该列表中提取元素作为逗号分隔的文本字符串
- 提取
如果将 M 代码粘贴到高级编辑器中,则可以将Table
第 2 行中的名称更改为工作表中数据的实际表名。
然后,您可以检查面板中的步骤Applied Steps
来了解正在发生的事情。
M 代码
let
Source = Excel.CurrentWorkbook(){[Name="Table4"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"sku", type text}, {"_media_attribute_id", Int64.Type}, {"_media_image", type text}}),
#"Filled Down" = Table.FillDown(#"Changed Type",{"sku"}),
#"Grouped Rows" = Table.Group(#"Filled Down", {"sku"}, {{"Grouped", each _, type table [sku=nullable text, _media_attribute_id=nullable number, _media_image=nullable text]}}),
#"Added Custom" = Table.AddColumn(#"Grouped Rows", "_media_attribute_id", each List.First(Table.Column([Grouped],"_media_attribute_id"))),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "_media_image", each Table.Column([Grouped],"_media_image")),
#"Extracted Values" = Table.TransformColumns(#"Added Custom1", {"_media_image", each Text.Combine(List.Transform(_, Text.From), ","), type text}),
#"Removed Columns" = Table.RemoveColumns(#"Extracted Values",{"Grouped"})
in
#"Removed Columns"