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

Google Sheet同单元格计算并显示百分比结果的脚本实现问题

Google Sheets 月度使用统计仪表盘实现方案

核心需求

在输入实际使用值的单元格,自动计算该值对应上限的占比,以百分比格式显示,同时通过条件格式给单元格上色,做成仪表盘式统计视图。比如:

  • 十一月Assets实际使用29,上限50,计算29/50=58%
  • 十一月Records实际使用295,上限1000,计算295/1000=29.5%

修改后的脚本实现(解决上限单元格引用问题)

假设你的表格结构是:

  • 实际值列:B列(B2=十一月Assets实际,B3=十一月Records实际)
  • 上限值列:C列(C2=Assets上限50,C3=Records上限1000)

替换原有脚本为以下代码,可直接适配上述结构,也能根据你的表格调整列号:

function onEdit(e) {
  // 获取当前编辑的单元格和工作表
  const editedCell = e.range;
  const sheet = editedCell.getSheet();
  
  // 只处理B列的输入(实际值列,可根据你的表格修改列号)
  if (editedCell.getColumn() !== 2) return;
  
  // 获取对应行的上限单元格(这里是同一行的C列,列号3)
  const limitCell = sheet.getRange(editedCell.getRow(), 3);
  const limitValue = limitCell.getValue();
  
  // 校验上限值是否为有效数字,避免除以0或非数字错误
  if (typeof limitValue !== 'number' || limitValue <= 0) {
    editedCell.setValue('上限无效');
    return;
  }
  
  // 设置公式:实际值 / 上限值
  editedCell.setFormula(`=${editedCell.getA1Notation()}/${limitCell.getA1Notation()}`);
  
  // 设置单元格格式为百分比(保留1位小数,可按需修改)
  editedCell.setNumberFormat('0.0%');
}

脚本关键说明

  • 只监听目标列(示例为B列)的编辑操作,避免无关单元格触发计算
  • 通过editedCell.getRow()获取当前行号,结合上限列的列号,精准引用同一行的上限单元格
  • 增加上限值校验,防止出现计算错误
  • 自动设置单元格为百分比格式,无需手动调整

条件格式设置步骤(实现仪表盘上色)

  1. 选中需要设置的实际值列(比如B列)
  2. 点击顶部菜单栏「格式」→「条件格式」
  3. 在右侧面板添加3条规则(可按需调整阈值):
    • 规则1:单元格值 < 0.5 → 设置填充色为绿色
    • 规则2:单元格值 ≥ 0.5 且 ≤ 0.8 → 设置填充色为黄色
    • 规则3:单元格值 > 0.8 → 设置填充色为红色
  4. 点击「完成」即可生效

注意事项

  • 首次运行脚本时,需要授权Google Apps Script权限,按提示操作即可
  • 如果你的表格实际值和上限值的列位置不同,修改脚本中getColumn() !== 2的数字(2对应B列)和getRow(), 3的数字(3对应C列)即可
  • 若需处理多个月份的统计,只需保证每行的实际值和对应上限值在同一行,脚本会自动适配

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:15:14