手搓WPS按颜色求和“万能公式”,真好用!
我是【桃大喵学习记】,欢迎大家关注哟~,每天为你分享职场办公软件使用技巧干货!
——首发于微信号:桃大喵学习记
最近有小伙伴反馈:按照单元格颜色求和,有没有比较好用的方式?
今天就跟大家分享一个用JSA自定义的WPS表格按颜色万能求和函数,简单又实用,自动识别数字,文本信息不参与计算。
一:自定义按颜色求和函数介绍
功能:根据指定的目标颜色单元格,对数据区域内所有相同底色的单元格进行求和。求和过程中仅识别并计算数值,自动忽略文本内容。
语法:=SumByColor(目标颜色单元格,求和数据区域)
基本用法:
如下图所示,现在需要对表格中不同颜色的单元格分别进行求和。以对红色单元格求和为例。
在目标单元格中输入公式:
=SumByColor(B3,B2:D7)
然后点击回车即可

解读:
公式中第1参数:B3就是要求和的目标颜色单元格;第2参数:B2:D7就是整个求和数据区域。

二、自定义SumByColor按颜色万能求和函数方法步骤
因为在 WPS 中使用 VBA 需要购买商业版,而大多数人使用的个人免费版仅支持 JSA(JavaScript for Applications)。今天我们就用 JSA 代码,自定义一个 SumByColor 函数,实现对指定背景色单元格的求和功能。
具体步骤:
第一步:调出WPS宏编辑器窗口


第二步:插入JSA宏源码
在WPS宏编辑器窗口编辑器中,找到【Project(按颜色.xlsx)】→【代码】→模块Module1中直接粘贴下方代码。


/*
功能: 按颜色汇总求和
作者: 桃大喵学习记
版本: SumByColor1.3
*/
function SumByColor(colorRange, dataRange) {
let total = 0;
// 提取颜色的函数
const getColor = (cell) => cell.Interior.Color;
const targetColor = getColor(colorRange);
// 使用 for 循环遍历单元格
for (let i = 1; i <= dataRange.Count; i++) {
let cell = dataRange.Item(i);
// 检查单元格的值是否为数字
if (typeof cell.Value2 === ‘number’ && getColor(cell) === targetColor) {
total += cell.Value2;
}
}
return total;
}
然后,关闭WPS宏编辑器窗口或切换回工作表,即可使用该自定义函数。
第三步:保存成启用宏的文件类型
点击【文件】菜单→选择【另存为】,在弹出的窗口中,将【文件类型】改为【启用宏的工作表】即可。

特别提醒:
①在保存包含自定义函数的表格时,【文件类型】必须选择【启用宏的工作表】,否则自定义函数将无法正常使用。

②如果下次打开该表格时,弹出“安全警告:宏已被禁用”的提示,必须点击【启用宏】按钮,否则自定义的函数将无法使用。

亲爱的小伙伴们:
如果你正在为复杂繁琐的WPS表格/Excel操作困扰,希望通过掌握实用技能显著提升工作效率、减少无效加班——你可以考虑下我的WPS表格/Excel系列课程。
以上就是【桃大喵学习记】今天的干货分享~觉得内容对你有所帮助,别忘了动动手指点个赞哦~。大家有什么问题欢迎关注留言,期待与你的每一次互动,让我们共同成长!
夜雨聆风
