Powerquery合并相同项Text.Combine栗子2

您所在的位置:网站首页 powerquery怎么用合并查询删除重复项 Powerquery合并相同项Text.Combine栗子2

Powerquery合并相同项Text.Combine栗子2

2024-07-12 12:56| 来源: 网络整理| 查看: 265

源数据 源数据 结果 结果 要求:同一个条码的箱号,位置,用逗号链接起来,合计进行求和。 POWERQUERY操作 1、上传到PQ编辑器,对箱号字段数据类型更改为文本。 1 2、根据条码对箱号,位置,合计3个字段进行分组求和。 2.1 2.2 3、更改箱号/位置的公式,使用Txet.Combine合并。 原公式

= Table.Group(更改的类型, {"條碼"}, {{"箱号", each List.Sum([箱號]), type text}, {"位置", each List.Sum([位置]), type text}, {"合计", each List.Sum([合計]), type number}})

更改后的公式

= Table.Group(更改的类型, {"條碼"}, {{"箱号", each Text.Combine([箱號], ",")}, {"位置", each Text.Combine([位置], ",")}, {"合计", each List.Sum([合計]), type number}})

4、结果 结果 示例文件下载

链接: http://pan.baidu.com/s/1jI5NOwQ 密码: geej

VBA解法 Sub 合并() Dim arr, brr arr = [a1].CurrentRegion'将数据放进数组arr ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))'定义数组brr和arr一样大小,用来存放合并的数据 Set d = CreateObject("scripting.dictionary")'创建字典 For i = 2 To UBound(arr)'遍历数据 If Not d.exists(arr(i, 1)) Then'如果是第一条数据 k = k + 1'标记行号 d(arr(i, 1)) = k'用字典标记行号,方便查询 '将数据放进数组brr brr(k, 1) = arr(i, 1)'订单号 brr(k, 2) = Format(arr(i, 2), "0000")'箱号,处理成文本 brr(k, 3) = arr(i, 3)'位置 brr(k, 4) = arr(i, 4)'合计 Else m = d(arr(i, 1))'读取标识的行号 brr(m, 2) = brr(m, 2) & "," & Format(arr(i, 2), "0000")'箱号用逗号链接 brr(m, 3) = brr(m, 3) & "," & arr(i, 3)'位置用逗号链接 brr(m, 4) = brr(m, 4) + arr(i, 4)'合计相加 End If Next [i4].Resize(k, UBound(brr, 2)) = brr'输出数据 End Sub 示例文件下载

链接: http://pan.baidu.com/s/1nuZTCP7 密码: 587y



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3