Google Sheets散点图如何根据对应单元格背景色为数据点自动着色
Google Sheets实现单元格背景色同步到散点图数据点的方法
步骤1:打开绑定的脚本编辑器
- 打开存储漆厚数据的Google Sheets文件
- 点击顶部菜单栏「扩展程序」>「Apps Script」,进入脚本编辑页面
步骤2:粘贴适配的Google Apps Script代码
替换编辑器内默认的代码,根据实际情况修改开头的配置项即可:
function syncCellColorToScatterChart() { // --------------- 以下配置可根据你的文件实际情况修改 --------------- const SHEET_NAME = "Sheet1"; // 替换为数据所在工作表的名称 const CHART_INDEX = 0; // 图表在工作表的排序,第一个图表填0,第二个填1以此类推 const VALUE_COL_START = 3; // 区域数值列的起始位置,A列对应1,示例中区域1是C列所以填3 const VALUE_COL_END = 6; // 区域数值列的结束位置,示例中区域4是F列所以填6 const DATA_ROW_START = 2; // 数值数据的起始行,表头占第1行的话就填2 // -------------------------------------------------------- const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME); const charts = sheet.getCharts(); if (charts.length <= CHART_INDEX) return; const chart = charts[CHART_INDEX].modify().asScatterChart(); // 遍历每个区域对应的图表系列 for (let seriesIdx = 0; seriesIdx <= VALUE_COL_END - VALUE_COL_START; seriesIdx++) { const currentCol = VALUE_COL_START + seriesIdx; // 遍历当前系列的所有数据点 const lastDataRow = sheet.getLastRow(); for (let row = DATA_ROW_START; row <= lastDataRow; row++) { const targetCell = sheet.getRange(row, currentCol); const cellBgColor = targetCell.getBackground(); // 同步设置数据点的填充色和边框色 chart.setPointStyle(seriesIdx, row - DATA_ROW_START, Charts.newPointStyle() .setFillColor(cellBgColor) .setStrokeColor(cellBgColor) .build() ); } } // 保存更新后的图表 sheet.updateChart(chart.build()); }
步骤3:测试运行脚本
- 点击编辑器顶部的「保存」按钮,给项目自定义命名即可
- 首次运行会弹出权限申请,按提示完成授权即可:Google提示未验证应用时,点击「高级」>「继续前往[你的项目名]」即可,脚本为你自行编写无安全风险
- 运行完成后返回工作表,即可看到散点图数据点颜色已和对应单元格背景色同步
步骤4:设置自动同步(可选)
如果不需要每次手动运行脚本,希望修改单元格背景色后自动同步颜色到图表,可按以下操作设置触发器:
- 点击脚本编辑器左侧的闹钟图标(「触发器」选项)
- 点击右下角「添加触发器」
- 按以下参数配置:
- 选择要运行的函数:
syncCellColorToScatterChart - 选择事件来源:
电子表格 - 选择事件类型:
更改 - 点击保存即可
- 选择要运行的函数:
内容的提问来源于stack exchange,提问作者Edaelis
相关产品推荐
相关产品推荐

