You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Power BI如何将成对列上下拼接为单一结构化表格

方案1:使用Power Query(无代码,最推荐)

  • 选中原始数据区域,点击「数据」选项卡 → 「自表格/区域」导入Power Query编辑器
  • 选中SKU、Description、Quantity三列,右键点击「拆分列」:
    • SKU和Description列按分隔符「, 」拆分
    • Quantity列按分隔符「:」拆分
  • 按住Ctrl选中所有拆分后的SKU列,右键点击「逆透视列」,同理操作所有拆分后的Description列
  • 筛选掉空值行,保留对应匹配的SKU和Description列,重命名列后点击「关闭并上载」导出到Excel即可
    该方法无需手动写公式,后续原始数据更新后只需刷新即可自动生成新的结果,适合批量处理数据。

方案2:公式法(适合小规模数据)

假设拆分后的23个SKU列在BZ列,23个对应Description列在AAAQ列,第一行为表头,第二行开始为原始订单数据:

  • 在目标SKU列第一行输入公式:=INDEX($B$2:$Z$100,INT((ROW(A1)-1)/23)+1,MOD(ROW(A1)-1,23)+1)
  • 在对应Product列第一行输入公式:=INDEX($AA$2:$AQ$100,INT((ROW(A1)-1)/23)+1,MOD(ROW(A1)-1,23)+1)
  • 把公式向下填充,直到出现空值后停止,筛选掉空行即可得到结果
    注意把公式里的区域替换成你实际的拆分后数据区域即可。

方案3:VBA脚本(适合高频重复处理场景)

按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码:

Sub 合并SKU和产品信息()
    Dim wsSource As Worksheet, wsResult As Worksheet
    Dim i As Long, j As Long, resultRow As Long
    Const SKU_START_COL = 2 '拆分后SKU第一列的列号,按实际修改
    Const DES_START_COL = 25 '拆分后Description第一列的列号,按实际修改
    Const COL_COUNT = 23 '每类拆分后的列数
    Const DATA_START_ROW = 2 '原始数据起始行
    
    Set wsSource = ActiveSheet '原始数据所在工作表
    Set wsResult = ThisWorkbook.Worksheets.Add(after:=wsSource)
    wsResult.Range("A1:B1") = Array("SKU", "Product")
    resultRow = 2
    
    For i = DATA_START_ROW To wsSource.Cells(Rows.Count, SKU_START_COL).End(xlUp).Row
        For j = 0 To COL_COUNT - 1
            If wsSource.Cells(i, SKU_START_COL + j) <> "" Then
                wsResult.Cells(resultRow, 1) = wsSource.Cells(i, SKU_START_COL + j)
                wsResult.Cells(resultRow, 2) = wsSource.Cells(i, DES_START_COL + j)
                resultRow = resultRow + 1
            End If
        Next j
    Next i
End Sub

修改代码里的常量参数匹配你的实际表格结构,运行即可自动生成结果工作表。

内容的提问来源于stack exchange,提问作者Sebastian Boar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:24:01