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

问题描述 投票:0回答:2

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

在构建密钥生成器的情况下,我需要使用多个RANDBETWEEN输出,重新计算在每个单元格更改上占用一席之地,并且那些RANDBETWEEN数字不能在我的工作表中保留一周,我不断编辑。

我的大多数谷歌搜索告诉我,这不能完成,因为这些功能是不稳定的,这只能通过设置“手动”计算在MS Excel中完成。这些答案中的大多数也都建议复制/粘贴这些挥发物,但如果它们太多,这可能会很麻烦......

random google-sheets spreadsheet
2个回答
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. 创建新的(第4个)电子表格并根据需要命名(并启用共享)
  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并选择“数据验证...”,然后选择“标准”选择“复选框”并选中“使用自定义单元格值”。然后作为TRUE输入数字1和FALSE输入数字0
  11. 为C4单元做同样的事情(这将作为on / on开关而不是开/关)
  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. 完成了!奖励步骤:要确保这两个随机生成的密钥是唯一的,您可以在“ALL_KEYS”电子表格中添加=IF($A$1<>$A$2;"unique";"reload")等警报,然后将其导入第四个电子表格,如=IMPORTRANGE("paste-here-whole-url-of-ALL_KEYS-spreadsheet"; "Sheet1!a10")

SUM:现在无论何时启用/禁用“切换”,它都会为您生成随机的新密钥,它会一直保持在那里直到下一次按下交换机(浏览器选项卡的RELOAD甚至不会更改随机生成的密钥)。你可以看到在“KEY1”中有一个轻微的偏移键1,在“ALL_KEYS”和“4th”中有一个键1,但这无论如何都不值得......

enter image description here

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


0
投票

当我需要创建随机分数生成器时,这是我使用的一些工作。

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

这样,随机数生成器可能在每次更新时都是易失性的,但我只是在需要时导入随机信息。

这是一些脚本,但不是太沉重。

© www.soinside.com 2019 - 2024. All rights reserved.