分享

续:比Vlookup好用100倍,Groupby原来是一个超级查找函数

 万里潮涌 2024-07-10 发布于浙江

图片

遗憾的是有一个问题没解决,就是同一天同一个银行的金额没合并,如下图所示两个中行应该合并成一个 中行7200。

图片

所以,今天兰色就重写公式,把这个功能补齐了。

=LET(X,GROUPBY(CHOOSECOLS(A1:C17,3,1),B1:B17,SUM,3,0),GROUPBY(CHOOSECOLS(X,1),HSTACK(CHOOSECOLS(X,2)&CHOOSECOLS(X,3),CHOOSECOLS(X,3)),HSTACK(ARRAYTOTEXT,SUM),3,0))

图片

公式太长看不懂,嘿嘿,兰色就拆开一步步看如何实现的。

分析:

要想结果不重复,那在合并之前先进行一次汇总,把同一天同一家银行的金额汇总到一起。

=GROUPBY(CHOOSECOLS(A1:C17,3,1),B1:B17,SUM,3,0)

注:Choosecols提取第3列和第1列,作为groupby的第一个参数

图片

接下来就开始进行二次分组,因为要多处用到上面的结果,所以用let定义一个名称X,后面表达式中只要用到上面汇总后的结果,就可以用X替代了。

通过这个例子也感受到let函数在简化公式中的应用了吧,如果不定义名称,这个公式会长好几倍

=LET(X,GROUPBY(CHOOSECOLS(A1:C17,3,1),B1:B17,SUM,3,0),GROUPBY(CHOOSECOLS(X,1),HSTACK(CHOOSECOLS(X,2)&CHOOSECOLS(X,3),CHOOSECOLS(X,3)),HSTACK(ARRAYTOTEXT,SUM),3,0))

汇总方法和上次文章介绍的一样

CHOOSECOLS(X,1)
提取第1列作为第一个参数
CHOOSECOLS(X,2)&CHOOSECOLS(X,3)
连接第2、3列因为结果需要银行和金额要连接
HSTACK(CHOOSECOLS(X,2)&CHOOSECOLS(X,3),CHOOSECOLS(X,3))
用HSTACK把两列连接后结果和B列金额重新组合成两列数组,因为结果需要同时显示合并和金额合计
HSTACK(ARRAYTOTEXT,SUM)
同样进行两种不同的运算也需要用HSTACK函数组合

30分别是显示标题行和不显不汇总行

最后再总结一下groupdy的几个重要参数

=Groupby(行字段,值字段,分组方式,是否显示标题是否显示总行)

兰色说:groupby函数兰色讲了接近两个月,如果你以为全部介绍完就错了。因为我们才刚刚入门,了解了它的基本用法而已。

groupby函数和本例已添加到兰色函数公式大全教程中,后续兰色会更新更多它的高级用法。买过课程的同学可以下载软件和课件看视频学习了。如果你也想跟兰色学习更多函数用法,可以点击下方链接购买四全一大全套课程。(函数大全158集+技巧大全119集+透视表50集套+图表185集

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多