用LAMBDA自定义颜色求和函数
作者:小窝来源:部落窝教育发布时间:2024-04-29 17:19:56点击:1261
在前面我们已经说过颜色求和实际是个伪需求,但仍然有伙伴对颜色求和有需要,并且提出了不用VBA代码做自定义颜色求和函数的需要。
有一些伙伴提出:“能否给一个不用VBA代码的自定义颜色求和函数?”
简单,小窝今天安排上了。
在《颜色求和实际是个伪命题,但还是告诉你4种方法!》中,小窝推荐了4种颜色求和方法,其中Sumcolor自定义函数用来挺高大上的,但是需要输入VBA代码。
如果讨厌代码,用LAMBDA函数自定义颜色求和函数就可以了。(WPS表格也支持LAMBDA自定义。)
打开“定义名称”对话框,使用LAMBDA函数定义自定义函数SumColor。
在引用位置中输入公式=Lambda(x,y,sum((get.cell(63,indirect("r"&row(x)&"c"&column(x),0))=get.cell(63,y))*x))
说明:
为自定义函数Sumcolor设置两个参数,X和Y。X代表要求和的数据区域,Y代表颜色单元格。
get.cell(63,indirect("r"&row(x)&"c"&column(x),0)),可以获得求和区域中所有单元格的填色数字。
get.cell(63,y),获得颜色单元格的填色数字。
最后用SUM函数对填色相等的单元格数字求和。
63,是单元格背景填色属性代码;如果需要按字体颜色求和,则用数字24。
现在可以用SumColor颜色求和了。
将文件保存为支持宏的xlsm格式。
后续如果有其他工作簿需要颜色求和,直接打开今天保存的xlsm文件,复制使用了自定义函数的单元格粘贴到新文件中,再清除粘贴的内容即可使用自定义函数了,不用重新定义。
最后一次性附送大家按颜色计数、求平均值、求最大最小值的自定义函数公式。
按颜色计数Countcolor:
=Lambda(x,y,sum((get.cell(63,indirect("r"&row(x)&"c"&column(x),0))=get.cell(63,y))*1))
按颜色求最大值Maxcolor:
=Lambda(x,y,max((get.cell(63,indirect("r"&row(x)&"c"&column(x),0))=get.cell(63,y))*x))
按颜色求最小值Mincolor:
=Lambda(x,y,min((get.cell(63,indirect("r"&row(x)&"c"&column(x),0))=get.cell(63,y))*x))
按颜色求平均值Averagecolor:
=Lambda(x,y,let(a,get.cell(63,indirect("r"&row(x)&"c"&column(x),0)),b,get.cell(63,y),sum((a=b)*x)/sum((a=b)*1)))
本文配套的练习课件请添加客服微信buluowojiaoyu索取。
做Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择!
扫下方二维码关注公众号,可随时随地学习Excel:
相关推荐:
版权申明:
本文作者小窝;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。