将数据从一行转换为很多以创建产品SKU

时间:2018-06-29 05:38:57

标签: excel vba excel-formula excel-vba-mac

我有一家电子商务商店的产品数据有很多行,包括大小和颜色等。我需要将每个版本都放在单独的行中,以便我可以上传所有这些数据。我认为我需要某种Excel公式或VBA。

Title            Size
Ladies Dress    S,M,L,XL,XXL
Men's Trousers  S,M,L,XL,XXL

所需数据:

Title           Size
Ladies Dress    S
Ladies Dress    M
Ladies Dress    L
Ladies Dress    XL
Ladies Dress    XXL
Men's Trousers  S
Men's Trousers  M
Men's Trousers  L
Men's Trousers  XL
Men's Trousers  XXL

我只是在Google Spreadsheet上放置了2个示例行,以便我可以共享。

Sample

1 个答案:

答案 0 :(得分:0)

这是我为PC编写子程序的方式;我将尽力使函数调用尽可能地通用和跨平台。

Option Explicit

Sub sizeExpansion()
    Dim i As Long, szs As Variant

    With Worksheets("sheet1")
        For i = .Cells(.Rows.Count, "B").End(xlUp).Row To 2 Step -1
            szs = Split(.Cells(i, "B").Value2, ",")
            If CBool(UBound(szs)) Then
                .Cells(i, "A").Resize(UBound(szs), 1).EntireRow.Insert
                .Cells(i, "A").Resize(UBound(szs) + 1, 1) = .Cells(UBound(szs) + i, "A").Value2
                .Cells(i, "B").Resize(UBound(szs) + 1, 1) = Application.Transpose(szs)
            End If
        Next i
    End With

End Sub