请求修改Google Sheets背景色单元格统计脚本支持多颜色
支持多颜色统计的Google Sheets脚本修改方案
完全可行,以下是调整后的脚本,可统计目标范围内匹配你定义的任意多种颜色的单元格总数:
function countColoredCells(countRange, ...colorRefs) { var activeRange = SpreadsheetApp.getActiveRange(); var activeSheet = activeRange.getSheet(); var formula = activeRange.getFormula(); // 提取统计范围的A1标记 var rangeA1Notation = formula.match(/\((.*?)(?:,|$)/).pop(); var range = activeSheet.getRange(rangeA1Notation); var bg = range.getBackgrounds(); // 收集所有目标颜色的十六进制值 var targetColors = []; colorRefs.forEach(function(ref) { var colorCell = activeSheet.getRange(ref); targetColors.push(colorCell.getBackground()); }); var count = 0; // 遍历单元格,统计匹配任意目标颜色的数量 for(var i=0;i<bg.length;i++){ for(var j=0;j<bg[0].length;j++){ if(targetColors.includes(bg[i][j])){ count++; } } } return count; };
使用方法
在Google Sheets单元格中输入公式,格式如下:
=countColoredCells(统计范围, 颜色单元格1, 颜色单元格2, ..., 颜色单元格7)
示例:=countColoredCells(A1:C10, E1, E2, E3, E4, E5, E6, E7),其中E1到E7是你预先设置好对应7种目标颜色的单元格。
关键改动说明
- 采用剩余参数语法
...colorRefs,允许传入任意数量的颜色单元格引用 - 新增
targetColors数组,批量存储所有需要统计的颜色十六进制值 - 判断条件从单一颜色匹配改为检查单元格颜色是否存在于目标颜色数组中
内容的提问来源于stack exchange,提问作者spicypat2
相关产品推荐
相关产品推荐

