【问题标题】:Converting data from one row, to many to create product SKUs将数据从一行转换为多行以创建产品 SKU
【发布时间】:2018-12-08 05:57:48
【问题描述】:

我有很多关于电子商务商店的产品数据行,包括尺寸和颜色等。我需要每个变体都在自己的行上,这样我就可以上传所有这些数据。我认为我需要某种 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 电子表格上放置了 2 个示例行,以便分享。

Sample

【问题讨论】:

  • 以前有人问过类似的问题,在这里搜索一下......
  • 你有什么版本的 Excel?
  • Mac,版本 16.14.1

标签: excel vba macos excel-formula


【解决方案1】:

这是我为 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

【讨论】:

  • 这很好,但是,我如何添加另一列,因为我也有颜色? DATA NOW 标题 尺码 颜色 女士连衣裙 S,M,L,XL,XXL 蓝色, 黑色, 红色 男士长裤 S,M,L,XL,XXL 棕色, 黄色, 橙色
  • 我已经尝试自己调整代码,但无法做到。我非常感谢您的帮助。在这种特殊情况下,我什至不知道从哪里开始。我本来打算在原帖上写的,但很久以前就知道在这些论坛上少即是多。看看我的其他问题,你会发现我总是先尝试。再次感谢您的帮助。
  • 您为什么不使用新的示例数据开始一个新问题,并包括您调整上述代码的努力以及对出了什么问题的解释?
  • 我没有问包括其他字段在内的原始问题的原因是我想保持简单,并认为我可以改编任何好心的人让我开始的代码。是的,我会按照你的建议去做。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-01
  • 2023-01-30
  • 1970-01-01
  • 2018-12-08
相关资源
最近更新 更多