You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于另一单元格的精确数值设置Google Sheets单元格的指定色调占比背景色?

在Google Sheets中基于其他单元格数值设置背景色为黑色的精确占比

解决方法:使用Google Apps Script

原生条件格式无法实现“基于其他单元格数值+精确颜色占比”的组合需求,需要借助Google Apps Script完成。

步骤1:打开脚本编辑器

打开目标Google Sheets文档,点击顶部菜单栏的 工具 > 脚本编辑器,进入Apps代码编辑界面。

步骤2:编写脚本代码

删除编辑器默认代码,粘贴以下脚本:

function setBlackPercentageBackground() {
  const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 读取控制单元格A2的数值
  const percentageValue = sheet.getRange('A2').getValue();
  // 限制数值在0-1区间(0=纯白,1=纯黑)
  const clampedValue = Math.max(0, Math.min(1, percentageValue));
  // 计算对应灰度RGB值:黑色占比为x时,RGB为(255*(1-x), 255*(1-x), 255*(1-x))
  const grayValue = Math.floor(255 * (1 - clampedValue));
  const rgbColor = `rgb(${grayValue}, ${grayValue}, ${grayValue})`;
  // 设置目标单元格A1的背景色
  sheet.getRange('A1').setBackground(rgbColor);
}

// 创建 onChange 触发器,单元格值变化时自动执行函数
function createOnChangeTrigger() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  ScriptApp.newTrigger('setBlackPercentageBackground')
    .forSpreadsheet(ss)
    .onChange()
    .create();
}

步骤3:设置自动触发机制

  1. 在脚本编辑器中点击顶部 运行 按钮,先执行一次createOnChangeTrigger函数(首次运行需完成权限授权,按提示操作即可)。
  2. 授权完成后,触发器生效——此后只要A2的数值变化,A1的背景色会自动更新为对应占比的黑色。

效果验证

  • 当A2输入0.7时,A1背景变为70%黑色(混合30%白色),对应RGB值rgb(76,76,76);
  • 输入0时A1为纯白色,输入1时为纯黑色,输入0.3时为30%黑色(RGB值rgb(178,178,178))。

自定义调整

若要修改控制单元格或目标单元格,只需调整代码中的对应部分:

  • 将sheet.getRange('A2')改为你要读取数值的单元格(如B5);
  • 将sheet.getRange('A1')改为你要设置背景色的单元格(如C3)。

内容的提问来源于stack exchange,提问作者Mike Smith

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 18:57:44