Excel:根据“金额”列创建多行

Excel:根据“金额”列创建多行

我在 Excel 中有一个如下所示的数据集:

顾客 数量 城市
约翰 4 城市B
帕特里克 3 城市A

还有一堆其他专栏。

我正在寻找一种方法来实现这一点:

顾客 数量 城市
约翰 4 城市B
约翰 4 城市B
约翰 4 城市B
约翰 4 城市B
帕特里克 3 城市A
帕特里克 3 城市A
帕特里克 3 城市A

因此,从本质上讲,为每个金额值获取一条记录。这是一次性导入操作,因此不必是动态的或其他任何操作。

答案1

这可以使用 Windows Excel 2010+ 和 Microsoft 365(Windows 或 Mac)中提供的 Power Query 来实现

使用 Power Query

  • 在数据表中选择一些单元格
  • Data => Get&Transform => from Table/Range
  • 当 PQ 编辑器打开时:Home => Advanced Editor
  • 记下表格姓名在第 2 行
  • 将下面的 M 代码粘贴到您所看到的位置
  • 将第 2 行的表名改回最初生成的表名。
  • 阅读评论并探索Applied Steps以了解算法
let

//Change next lines to reflect actual data source and columns
    Source = Excel.CurrentWorkbook(){[Name="Table11"]}[Content],
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Customer", type text}, 
        {"Amount", Int64.Type}, {"City", type text}}),

    #"Repeat Rows" = 
        Table.FromRecords(
            List.Combine(
                List.Accumulate(
                    {0..Table.RowCount(#"Changed Type")-1},
                    {}, 
                    (state, current)=> 
                        state & 
                            {List.Repeat(
                                {#"Changed Type"{current}}, 
                                Record.Field(#"Changed Type"{current},"Amount"))
                            })
                    ))
in
    #"Repeat Rows"

在此处输入图片描述

相关内容