Hit counter单元格从0改1时Total Hits自动递加1的实现方法咨询
公式实现可行性判断
仅用表格内置公式无法实现该需求。公式只能读取单元格当前的实时值进行计算,没有能力记录历史编辑行为,也无法感知0→1的变更事件并做累计计数。
Apps Script 实现方案(针对Google Sheets)
前置假设
你的表格列排布如下,数据从第2行开始,第1行为表头:
- A列:用户名
- B列:Hit counter(仅0/1值)
- C列:Total Hits
实现步骤
- 打开目标表格,依次点击顶部菜单「扩展程序」→「Apps Script」进入脚本编辑页
- 删除编辑器内默认的示例代码,粘贴如下代码:
// 表格编辑时自动触发的内置触发器 function onEdit(e) { // 获取编辑的单元格信息 const editedRange = e.range; const sheet = editedRange.getSheet(); // 只处理B列(Hit counter列,如果你列号不对可以修改这里的数字)、且不是表头的编辑行为 if (editedRange.getColumn() !== 2 || editedRange.getRow() < 2) return; // 获取编辑前的值和编辑后的值 const oldValue = e.oldValue; const newValue = editedRange.getValue(); // 只有编辑行为是 0→1 时才计数 if (oldValue == 0 && newValue == 1) { // 对应行C列的Total Hits加1 const totalHitsCell = sheet.getRange(editedRange.getRow(), 3); totalHitsCell.setValue((totalHitsCell.getValue() || 0) + 1); } }
- 点击编辑器顶部的保存按钮,为项目任意命名后关闭脚本编辑页即可。
效果验证
回到表格即可测试功能:
- 将Test1对应的B列值从0改为1,C列数值自动+1
- 将B列值从1改回0,C列无变化
- 再次将B列值从0改回1,C列再次+1,完全符合需求规则。
内容的提问来源于stack exchange,提问作者WarrenJB
相关产品推荐
相关产品推荐

