防止时间戳公式在 Google 个工作表中重新计算
Preventing Timestamp Formulas from Recalculating in Google Sheets
我们是一家在全国拥有多个呼叫中心的公司。为了跟踪谁离线以及何时离线(让我们知道有多少人已安排好或正在工作登录),我们想跟踪电话会议。
2 个部分,我们将实时使用它来确定当前谁离线,然后最终使用收集到的数字来帮助我们的员工在未来更好地工作
用途:我希望我们的远程团队能够在 B 列或 C 列中输入 "x",然后输入 sheet(或脚本 运行ning sheet) 会在 G 列或 H 列中为开始或结束时间做一个自动时间戳。
问题:出于某种原因,我一直在使用的时间戳脚本每天被触发 运行 几次,并将所有开始时间和结束时间重置为当前时间,从而丢失我们所有的持续时间数据对于那些被盖章的时代。远程使用它的团队非常 un-tech 精明。如此简单是最好的。
完美世界结果:当时间戳在字段中时,它永远不会 re-calculate 公式。
问题:是否有任何类型的脚本可以帮助我在 G 列或 H 列中包含公式结果(但将公式留空)的任何单元格中执行特殊复制和粘贴(仅限值)细胞?)
或
任何防止 sheet 从 re-calculating 发生的方法,我无法弄清楚是什么导致了这个 sheet 到 re-calcualte,因为时代不同。
感谢任何帮助。这是 link 到 sheet:
https://docs.google.com/spreadsheets/d/1hbTatQFlZNBPsoKp--jbT3AFhJlR-8t42olaS8cDw/edit?usp=sharing
我已将此脚本添加到您的电子表格中:
function onEdit(e) {
if (e.source.getActiveSheet()
.getName() === 'WFM View' || e.range.columnStart !== 2 && e.range.columnStart !== 3 ||
e.range.rowStart < 4 || e.value.toUpperCase() !== 'X') return;
e.range.offset(0, 5)
.setValue(new Date());
}
该脚本应该适用于除第一个工作表之外的所有工作表,并且当在 B 或 C 中输入 X(不区分大小写)时,将在列 G 或 H 中写入时间戳。
注意:
- 我已经注释掉了你的其他脚本。
确保删除 G 列和 H 列中的这些类型的公式:
=IF(B4="","",TIMESTAMP())
删除公式后,通过在列 B 或 C 中输入 'X' 来尝试脚本,看看是否有效?
我们是一家在全国拥有多个呼叫中心的公司。为了跟踪谁离线以及何时离线(让我们知道有多少人已安排好或正在工作登录),我们想跟踪电话会议。
2 个部分,我们将实时使用它来确定当前谁离线,然后最终使用收集到的数字来帮助我们的员工在未来更好地工作
用途:我希望我们的远程团队能够在 B 列或 C 列中输入 "x",然后输入 sheet(或脚本 运行ning sheet) 会在 G 列或 H 列中为开始或结束时间做一个自动时间戳。
问题:出于某种原因,我一直在使用的时间戳脚本每天被触发 运行 几次,并将所有开始时间和结束时间重置为当前时间,从而丢失我们所有的持续时间数据对于那些被盖章的时代。远程使用它的团队非常 un-tech 精明。如此简单是最好的。
完美世界结果:当时间戳在字段中时,它永远不会 re-calculate 公式。
问题:是否有任何类型的脚本可以帮助我在 G 列或 H 列中包含公式结果(但将公式留空)的任何单元格中执行特殊复制和粘贴(仅限值)细胞?)
或
任何防止 sheet 从 re-calculating 发生的方法,我无法弄清楚是什么导致了这个 sheet 到 re-calcualte,因为时代不同。
感谢任何帮助。这是 link 到 sheet:
https://docs.google.com/spreadsheets/d/1hbTatQFlZNBPsoKp--jbT3AFhJlR-8t42olaS8cDw/edit?usp=sharing
我已将此脚本添加到您的电子表格中:
function onEdit(e) {
if (e.source.getActiveSheet()
.getName() === 'WFM View' || e.range.columnStart !== 2 && e.range.columnStart !== 3 ||
e.range.rowStart < 4 || e.value.toUpperCase() !== 'X') return;
e.range.offset(0, 5)
.setValue(new Date());
}
该脚本应该适用于除第一个工作表之外的所有工作表,并且当在 B 或 C 中输入 X(不区分大小写)时,将在列 G 或 H 中写入时间戳。
注意:
- 我已经注释掉了你的其他脚本。
确保删除 G 列和 H 列中的这些类型的公式:
=IF(B4="","",TIMESTAMP())
删除公式后,通过在列 B 或 C 中输入 'X' 来尝试脚本,看看是否有效?