防止在Google表格中重新计算时间戳公式

时间:2015-03-27 00:39:42

标签: google-apps-script google-sheets

我们是一家在全国拥有多个呼叫中心的公司。为了跟踪谁处于离线状态以及何时(让我们知道有多少人已安排登录),我们希望跟踪电话会议。

2部分,我们将实时使用它来确定谁在当前离线,然后最终使用收集的数字,以便能够在将来更好地帮助我们的员工

使用:我希望我们的远程团队能够在B列或C列中键入“x”,然后工作表(或工作表上运行的脚本)将为开始或结束时间执行自动时间戳在G栏或H栏中。

问题:由于某种原因我一直在使用的时间戳脚本被触发每天运行几次并将所有开始时间和结束时间重置为当前时间,丢失所有已标记时间的持续时间数据。远程使用它的团队非常精通技术。这么简单是最好的。

完美世界结果:当字段中存在时间戳时,它不会重新计算公式。

问题:是否有任何类型的脚本可以帮助我在列G或H中包含公式结果的任何单元格中执行复制和粘贴特殊(仅限值)(但将公式保留在空白单元格中? )

任何阻止工作表重新计算的方法,由于时间的变化,我无法弄清楚导致此工作表重新计算的原因。

感谢任何帮助。这是表格的链接:

https://docs.google.com/spreadsheets/d/1hbTatQFlZNBPsoKp--jbT3AFhJlR-8t42olaS8cDw/edit?usp=sharing

1 个答案:

答案 0 :(得分:0)

我将此脚本添加到您的电子表格中:

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(不区分大小写)时,将在col G或H中写入时间戳。

注意:

  • 我已经注释掉了你的其他剧本。
  • 确保在col G和H中删除这些类型的公式:

    = IF(B4 = “”, “”,时间戳())

  • 删除公式后,通过在col B或C中输入“X”来尝试脚本,看看是否有效?