我有一个独特的设备列表和4种不同的关税来创建一个新的列表,每个设备和关税1行

时间:2018-05-08 11:59:24

标签: excel vba excel-vba

所以我有一个列表,其中包含唯一的设备名称和4种不同的关税:关税1,2,3和4

我想创建一个列表,每个设备和关税组合都有一行,因此每个设备总共有4行。

示例:

设备1 |关税1

设备1 |关税2

设备3 |关税1

设备3 |关税2

有没有快速简便的方法呢?

编辑:我希望它在两个单独的列中,因此列A:设备,B列:关税

2 个答案:

答案 0 :(得分:2)

使用Power Query(获取和转换数据)非常简单 - 如果您将设备列表放在一个表中,而将关税列表放在另一个表中:

let
    Source = Excel.CurrentWorkbook(){[Name="tbDevices"]}[Content],
    Tariffs = Excel.CurrentWorkbook(){[Name="tbTariffs"]}[Content],
    #"Added Custom" = Table.AddColumn(Source, "Custom", each Tariffs),
    #"Expanded Custom" = Table.ExpandTableColumn(#"Added Custom", "Custom", {"Tariffs"}, {"Tariffs"})
in
    #"Expanded Custom"

例如:

For example:

答案 1 :(得分:1)

示例:

Option Explicit

Public Sub Combinations()
    Dim i As Long, y As Long, counter As Long
    counter = 2

    With ThisWorkbook.Worksheets("Sheet1")
        For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row '<== Loop devices skipping header
            For y = 2 To .Cells(.Rows.Count, "B").End(xlUp).Row '<== Loop tariffs skipping header
                .Cells(counter, "C") = .Cells(i, "A")
                .Cells(counter, "D") = .Cells(y, "B")
                counter = counter + 1
            Next y
        Next i
   End With
End Sub

示例输出:

Output