首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

真没想到,上次兰色写的这个教程竟然火了,只是转发量就超过2000多。

遗憾的是有一个问题没解决,就是同一天同一个银行的金额没合并,如下图所示两个中行应该合并成一个 中行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函数组合

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

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

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

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

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OVGO6DXfRaMyvC1AgvgOyEYQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券