如何停止/冻结/暂停不稳定的NOW / TODAY / RAND / RANDBETWEEN?

时间:2018-04-27 00:43:36

标签: random google-sheets spreadsheet

有一种简单的方法(没有繁重的脚本)如何禁用谷歌电子表格中的 =NOW() =TODAY() =RAND() =RANDBETWEEN() 等易失性函数的自动重新计算?

在构建密钥生成器的情况下,我需要处理多个RANDBETWEEN输出,重新计算会在每个单元格更改时占用一个位置,并且那些RANDBETWEEN数字不能保留,例如a在我的工作表中的一周,我不断编辑。

我的大部分谷歌搜索都告诉我,这不能完成,因为这些功能是不稳定的,只能在MS Excel中通过设置"手册"进行计算。这些答案的大多数都是模仿这些挥发物的复制/粘贴,但如果它们太多,这可能会令人烦恼......

2 个答案:

答案 0 :(得分:1)

实际上,有一种简单的解决方案来实现这样的"冷冻" ( 30分钟)这些易变函数。 (那可能不是"聪明的",但到目前为止它非常有效)

这是一个用于生成两个"冻结"的小教程。密钥实施 RANDBETWEEN

  1. 创建新的电子传播并将其命名为" KEY1 "
  2. 设置范围 A1:P1 的值,如:enter image description here
  3. 将其插入单元格 A3

    =index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))& index($A$1:$P$1;RANDBETWEEN(1;counta($A$1:$P$1)))

  4. 创建整个电子表格的副本/副本,并将其命名为" KEY2 "

  5. 创建新的(第3个)电子表格并将其命名为" ALL_KEYS "

  6. 启用所有3个电子表格的共享,并在高级选项中选择" 可以编辑" (请注意,如果不执行此步骤,则会导致 #REF 错误,因为这些电子表格需要相互关联)

  7. 在此第3电子表格设置单元格 A1 A2 中,如下所示:

    =IMPORTRANGE("paste-here-whole-url-of-KEY1-spreadsheet";"Sheet1!$A$3") =IMPORTRANGE("paste-here-whole-url-of-KEY2-spreadsheet";"Sheet1!$A$3")

  8. 创建新的(第四)电子表格并根据需要为其命名(并启用共享)

  9. 在整个电子表格中的任何单元格(甚至任何工作表标签)中插入每个公式示例:

    D3 =IMPORTRANGE("paste-here-whole-url-of-ALL_KEYS-spreadsheet";"Sheet1!$A$1") D4 =IMPORTRANGE("paste-here-whole-url-of-ALL_KEYS-spreadsheet";"Sheet1!$A$2")

  10. 右键点击单元格 C3 ,然后选择" 数据验证... "然后作为 Criteria 选择" Checkbox "并检查"使用自定义单元格值"。然后作为TRUE输入数字 1 和作为FALSE输入数字 0

  11. C4 单元格执行相同操作(这将在开关上工作,而不是打开/关闭)

  12. 现在转到电子表格" KEY1 "和" KEY2 ",并在两者中将其插入 A2 单元格中:

    "KEY1" -> A2 =IMPORTRANGE("paste-here-whole-url-of-4th-spreadsheet";"Sheet1!$C$3") "KEY2" -> A2 =IMPORTRANGE("paste-here-whole-url-of-4th-spreadsheet";"Sheet1!$C$4")

  13. 关闭电子表格" KEY1 "," KEY2 " &安培; " ALL_KEYS ",再也不打开它们

  14. 完成!奖励步骤:为了确保这两个随机生成的密钥是唯一的,您可以在&#34; ALL_KEYS &#34;中添加=IF($A$1<>$A$2;"unique";"reload")等警报。电子表格,然后将其导入第4个电子表格,如=IMPORTRANGE("paste-here-whole-url-of-ALL_KEYS-spreadsheet"; "Sheet1!a10")

  15. SUM:现在每当您启用/禁用&#34;开关&#34;它将为您生成随机的新密钥,它将一直保持在那里直到下一次按下开关(即使浏览器选项卡的RELOAD也不会改变那些随机生成的密钥)。你可以看到&#34; KEY1 &#34;中有一个轻微的偏移 key1 。 &#34; ALL_KEYS &#34; key1 &安培; &#34; 第4次&#34;,但无论如何都不值得......

    enter image description here

    ...也许这可以作为安全措施来检查谷歌的某人是否打开了您的个人电子表格;)

答案 1 :(得分:0)

这是我需要创建随机分数生成器时使用的一些解决方法。

我创建了一个单独的选项卡,其中生成了随机信息。然后,我使用宏记录器将复制+粘贴值记录在随机选项卡上的主选项卡上。最后,我将宏链接到一个按钮。

这样,随机数生成器可能会在每次更新时波动,但是我只有在需要时才导入随机信息。

这有点脚本,但是不太沉重。