Google Sheets中按特定字体颜色求和单元格数值的方法
Google Sheets 按特定字体颜色求和的实现方法
Google Sheets没有内置函数直接支持按字体颜色求和,以下是两种实用的解决方法:
方法一:自定义Apps Script函数(推荐)
这是最直接的方案,通过编写简单的脚本实现按颜色求和:
- 打开目标表格,点击顶部菜单 扩展程序 > Apps 脚本,进入脚本编辑器。
- 删除默认代码,粘贴以下自定义函数代码:
function SUMBYFONTCOLOR(range, colorRef) { let sum = 0; const targetColor = colorRef.getFontColor(); const values = range.getValues(); const colors = range.getFontColors(); for (let i = 0; i < values.length; i++) { for (let j = 0; j < values[i].length; j++) { if (colors[i][j] === targetColor && !isNaN(values[i][j])) { sum += values[i][j]; } } } return sum; }
- 点击编辑器顶部的保存按钮,给脚本命名(如"ColorSum"),按提示完成权限授权(首次运行需要允许脚本访问表格数据)。
- 返回表格,在结果单元格中输入公式:
=SUMBYFONTCOLOR(求和区域, 颜色参照单元格)- 示例:若要计算A1:C10区域内,与D1单元格字体颜色一致的数值总和,输入
=SUMBYFONTCOLOR(A1:C10, D1)
- 示例:若要计算A1:C10区域内,与D1单元格字体颜色一致的数值总和,输入
方法二:辅助列+自定义判断函数(适合偏好非脚本场景)
如果不想直接用求和脚本,可以通过辅助列标记符合颜色条件的单元格,再求和:
- 按方法一的步骤打开脚本编辑器,添加以下判断颜色的函数:
function ISFONTCOLOR(cell, colorRef) { return cell.getFontColor() === colorRef.getFontColor() ? 1 : 0; }
- 在表格中插入辅助列(如D列),在D1单元格输入
=ISFONTCOLOR(A1, $E$1)(E1为颜色参照单元格),下拉填充至对应行。 - 使用求和公式计算结果:
=SUMIF(D:D, 1, A:A)(A:A为需要求和的数值列)
注意事项
- 自定义函数不会自动刷新,当单元格字体颜色变化后,需双击结果单元格按回车,或按
Ctrl+R(Windows)/Cmd+R(Mac)手动刷新。 - 确保求和区域内的数值为数字格式,文本格式的数字不会被计入求和结果。
内容的提问来源于stack exchange,提问作者MadPhysicist
相关产品推荐
相关产品推荐

