ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 2413|回复: 14

[求助] 如何进行多条件汇总排序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2022-12-15 13:42 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
表1“银行转账”是每天从系统里导出的表,这个表每天都会有更新,
表2“存取汇总”A--F列是表1按照客户编号来汇总,如果一个客户一天有多笔交易,会汇总成1笔,H列是通过透视表查找该客户日初资产金额
表3“汇总”是表1按员工姓名和关系类型来做的汇总
表4“按金额”、表5“按比例”是存取汇总表完全同步过来的。并且把“关系类型”为存量的标黄,存取比例小于-10%的标红。
表6和表7是表5、表6通过下面两张图自定义排序来实现的最终结果。
现在想通过表1“银行转账”,并添加表2中的H列和G列,直接得到表6“按金额完成效果”和表7“按比例完成效果”。
想请教下各位高手,这是不是用vba或是pq来实现?如何实现呢?





按比例排序条件.png
按金额排序条件.jpg

转账排序.zip

1.65 MB, 下载次数: 9

资金.zip

783.11 KB, 下载次数: 9

TA的精华主题

TA的得分主题

发表于 2022-12-15 16:06 | 显示全部楼层
不确定是不是这个意思,目前只做了good表。

good2.zip

1.73 MB, 下载次数: 6

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-15 16:47 | 显示全部楼层
本帖最后由 木易2008 于 2022-12-15 16:56 编辑
ykcbf1100 发表于 2022-12-15 16:06
不确定是不是这个意思,目前只做了good表。

差不多就是这样,但是可以排序的时候把“存量”下面吗?就是2层排序,另外,在实际测试的时候,有些客户会显示很多个,数据不准确了。可以再完善下吗?万分感谢
  



TA的精华主题

TA的得分主题

发表于 2022-12-15 16:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
木易2008 发表于 2022-12-15 16:47
差不多就是这样,但是可以排序的时候把“存量”下面吗?就是2层排序,另外,在实际测试的时候,有些客户 ...

你表1要排重汇总吗?

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-15 16:53 | 显示全部楼层
一个客户只要一行,行数应该和表2“存取汇总”一样,只是对这个表按资金和按比例两种方式排序,并且把存量的放在下面。

TA的精华主题

TA的得分主题

发表于 2022-12-15 16:59 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
木易2008 发表于 2022-12-15 16:53
一个客户只要一行,行数应该和表2“存取汇总”一样,只是对这个表按资金和按比例两种方式排序,并且把存量 ...

明天看下吧。那应该按表2来提取数据。

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-15 22:53 | 显示全部楼层
ykcbf1100 发表于 2022-12-15 16:59
明天看下吧。那应该按表2来提取数据。

最好是按表1来提取,这样可以省去表2,表1里A列同一个客户编号可能有好几条信息,汇总成1条,
如果同一客户编号有多条信息,H列存取金额做轧差。

TA的精华主题

TA的得分主题

发表于 2022-12-16 09:38 | 显示全部楼层
木易2008 发表于 2022-12-15 22:53
最好是按表1来提取,这样可以省去表2,表1里A列同一个客户编号可能有好几条信息,汇总成1条,
如果同一 ...

除了存量放下面外,其它问题解决了。
二个工作簿要放在同一个目录下。

good2.zip

1.73 MB, 下载次数: 15

资金.zip

430.31 KB, 下载次数: 10

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-16 10:08 | 显示全部楼层
ykcbf1100 发表于 2022-12-16 09:38
除了存量放下面外,其它问题解决了。
二个工作簿要放在同一个目录下。

你好,做出来的数据不准,多个客户只取了第一个数据,后面的数据没有做轧差,群里有位高手做了个,只能实现一部分功能,可以把您的和这个结合下吗?他做的代码如下:
Sub TEST()
    Dim ar, br(), n&, m&, sKey$, iRow&
    Dim d: Set d = CreateObject("scripting.dictionary")
    Application.ScreenUpdating = False
    ar = Sheets("银行转账").UsedRange
    ReDim br(1 To UBound(ar), 1 To 6)
    For i = 2 To UBound(ar)
        sKey = Trim(ar(i, 1))
        If Not d.Exists(sKey) Then
            n = n + 1
            br(n, 1) = ar(i, 1): br(n, 2) = ar(i, 2)
            br(n, 3) = ar(i, 6): br(n, 4) = ar(i, 7)
            br(n, 5) = ar(i, 5): br(n, 6) = Val(ar(i, 8))
            d(sKey) = n
        Else
            m = d(sKey)
            br(m, 6) = br(m, 6) + Val(ar(i, 8))
        End If
    Next i
    With Sheets("按金额")
    .[a1].Resize(1, 8) = Split("客户编号 客户姓名 员工姓名 关系类型 交易日期 资金存取汇总 日初资产 存取比例")
    .[a1].CurrentRegion.Offset(1).Clear
    .[a2].Resize(n, 8) = br
    .[a1].CurrentRegion.Borders.LineStyle = 1
     .Cells.Interior.Pattern = xlNone
      iRow = Cells(Rows.Count, "a").End(3).Row
      For i = 1 To iRow
        If .Cells(i, 4).Value = "存量" Then
            .Cells(i, 4).Interior.Color = vbYellow
        End If
      Next i
     .Sort.SortFields.Add Columns("D"), xlSortOnCellColor, 1, xlSortNormal
     .Sort.SortFields.Add Columns("F"), xlSortOnValues, 1, xlSortNormal
      With .Sort
        .SetRange [a1].CurrentRegion
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
      End With
    End With
    Application.ScreenUpdating = True
    Set d = Nothing
    MsgBox "OK!"
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2022-12-16 10:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
你好,做出来的结果不对,一个客户有多条信息,没有做汇总,只取了第一条,有个高手写了下面的代码,实现了按金额排序的部分,可以把您的和这个代码结合下再写下吗?谢谢!

代码.png




您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-20 07:20 , Processed in 0.036374 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表