在Excel中展开行

时间:2018-10-12 05:01:53

标签: excel dax powerquery

可能有一个简单的解决方案,但是我一直在撞墙。我大约有200行,其中前五列相同,最后一列有数字。我想扩展表以具有x数量的重复行。 X是最后一列中的数字。我以为我可以绕开枢纽,但这似乎行不通。我不知道任何解决方案吗?例如:

Row 1.  a   b   c   5 <br>
Row 2  aa   bb  cc  3

成为:

a   b   c
a   b   c
a   b   c
a   b   c
a   b   c

aa  bb  cc
aa  bb  cc
aa  bb  cc

2 个答案:

答案 0 :(得分:2)

您可以使用Power Query(获取和转换数据)。

  • 确保将源数据格式化为表格。
  • 更改“ Table1”和“ Column6”的名称以适合您的数据。

    let
        Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column6", Int64.Type}}),
        #"List Numbers" = Table.TransformColumns(#"Changed Type", {"Column6", each List.Numbers(1,_,1), type list}),
        #"Expanded Rows" = Table.ExpandListColumn(#"List Numbers", "Column6")
    in
        #"Expanded Rows"
    

请注意,这是M(高级查询语言),而不是DAX。

答案 1 :(得分:0)

您可以编写一个简单的宏。您可以在下面看到示例宏VB代码。

Sub Create()

Dim count As Integer
Dim col1 As String       
Dim col2 As String
Dim col3 As String

Dim row_counter As Integer

row_counter = 1

For x = 1 To 2

    count = Sheet1.Cells(x, "D")
    col1 = Sheet1.Cells(x, "A")
    col2 = Sheet1.Cells(x, "B")
    col3 = Sheet1.Cells(x, "C")

    For y = 1 To count

        Sheet2.Cells(row_counter, "A") = col1
        Sheet2.Cells(row_counter, "B") = col2
        Sheet2.Cells(row_counter, "C") = col3
        row_counter = row_counter + 1

    Next y
Next x
End Sub