基于值与颜色统计的Google Script实现求助
Google Sheets 按名称统计带颜色标记的操作数量
适用场景:数据包含两列(A列:重复的名称;B列:带颜色标记的操作单元格),需生成汇总表统计每个名称对应不同颜色操作的数量。
实现步骤
1. 添加自定义函数读取单元格颜色
Google Sheets原生函数无法直接读取单元格颜色,需通过Apps Script添加自定义函数:
- 打开目标表格,点击顶部菜单「扩展程序」→「Apps 脚本」
- 删除编辑器内默认代码,粘贴以下代码:
function GETCELLCOLORCODE(input) { var ss = SpreadsheetApp.getActiveSpreadsheet(); var range = ss.getRange(input); var hex = range.getBackground(); return hex; }
- 保存脚本(可自定义命名,如「ColorGetter」),关闭脚本编辑器
2. 生成颜色代码辅助列
在数据区域右侧插入新列(如C列),在C2单元格输入公式:=GETCELLCOLORCODE(CELL("address",B2))
下拉填充至所有数据行,C列将自动显示B列对应单元格的十六进制颜色代码(如#ffffff)
3. 构建汇总表
提取唯一值
- 唯一名称:在汇总区域的首列(如A10单元格)输入
=UNIQUE(A2:A),下拉得到所有不重复的名称 - 唯一颜色代码:在汇总区域的首行(如B9单元格)输入
=UNIQUE(C2:C),右拉得到所有不重复的颜色代码
统计交叉数量
在B10单元格输入以下公式,按Ctrl+Shift+Enter执行数组运算,再右拉、下拉填充至所有汇总单元格:=COUNTIFS($A$2:$A,$A10,$C$2:$C,B$9)
此时汇总表将显示每个名称对应各颜色操作的统计数量
4. 可选:优化颜色显示(直观化)
若想把颜色代码替换为实际颜色块:
- 选中颜色代码所在的首行(如B9及右侧单元格)
- 点击顶部菜单「格式」→「条件格式」
- 选择「自定义公式」,输入
=B9=C2,设置「背景颜色」为=B9 - 保存设置后,该行单元格将显示对应颜色,汇总表更直观
内容的提问来源于stack exchange,提问作者RF919
相关产品推荐
相关产品推荐

