为CountColoredCells脚本添加条件判断的实现方法
修改Google Apps Script实现双条件有色单元格统计
修改后的完整脚本
function countColoredActiveCells(countRange, conditionRange, colorRef) { const activeSheet = SpreadsheetApp.getActiveSheet(); // 获取统计区域的背景色(单行) const countRng = activeSheet.getRange(countRange); const bgColors = countRng.getBackgrounds()[0]; // 获取条件区域的状态值(单行) const conditionRng = activeSheet.getRange(conditionRange); const conditionValues = conditionRng.getValues()[0]; // 获取目标颜色的十六进制值 const targetColor = activeSheet.getRange(colorRef).getBackground(); let count = 0; // 遍历每一列,同时校验双条件 for (let j = 0; j < bgColors.length; j++) { // 条件1:背景色匹配目标色;条件2:对应列的状态为"Active" if (bgColors[j] === targetColor && conditionValues[j] === "Active") { count++; } } return count; }
关键改动说明
- 新增条件参数:添加
conditionRange参数,专门传入$T$2:$BL$2这个状态判断区域,实现列对应校验 - 优化单行处理:因为统计区域($T9:$BL9)和条件区域都是单行,直接提取数组第0项,省去不必要的行循环
- 双条件逻辑:循环时同时判断两个核心要求,确保只统计符合颜色且对应列状态为
"Active"的单元格 - 简化参数传递:移除原脚本中通过公式字符串解析范围的冗余逻辑,直接使用传入的参数,更可靠高效
使用方法
在表格任意单元格中输入公式(替换$A$1为实际的「light gray 3」颜色参照单元格):
=countColoredActiveCells($T9:$BL9, $T$2:$BL$2, $A$1)
内容的提问来源于stack exchange,提问作者Shann Thomson
相关产品推荐
相关产品推荐

