Как остановить / заморозить / приостановить энергозависимые СЕЙЧАС / СЕГОДНЯ / RAND / RANDBETWEEN? - PullRequest
0 голосов
/ 27 апреля 2018

Есть ли простой способ (без тяжелых сценариев), как отключить автоматические пересчеты энергозависимых функций, таких как =NOW() =TODAY() =RAND() =RANDBETWEEN() в электронной таблице Google?

в случае создания генератора ключей, когда мне нужно работать с несколькими RANDBETWEEN выходами, пересчет происходит при каждом изменении ячейки, и эти RANDBETWEEN числа не могут оставаться, например, неделю в моем листе , который я постоянно редактирую.

В большинстве моих поисков в Google было сказано, что этого нельзя сделать, потому что эти функции нестабильны, и это можно сделать только в MS Excel, установив вычисления в «ручном режиме». также большинство из этих ответов предлагает скопировать / вставить такие летучие вещества, но это может быть неприятно, если их слишком много ...

Ответы [ 2 ]

0 голосов
/ 19 апреля 2019

Это небольшая работа, которую я использовал, когда мне нужно было создать генератор случайных результатов.

Я создал отдельную вкладку с генерируемой случайной информацией. Затем я использовал средство записи макросов, чтобы записать значения copy + paste на мою главную вкладку со случайной вкладки. Наконец я связал макрос с кнопкой.

Таким образом, генератор случайных чисел может быть нестабильным при каждом обновлении, но я импортировал случайную информацию только тогда, когда хотел.

Это немного скриптовать, но не слишком тяжело.

0 голосов
/ 27 апреля 2018

На самом деле, существует простое решение для достижения такого «замораживания» ( на 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. в этой третьей ячейке таблицы 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. создайте новую ( 4th ) электронную таблицу и назовите ее по своему желанию (а также включите общий доступ)

  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 и выберите « Проверка данных ... », затем как Критерии выберите « Флажок"и отметьте" Использовать пользовательские значения ячеек ". затем как ИСТИННЫЙ номер входа 1 и как ЛОЖНЫЙ номер входа 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. сделано! шаг бонуса: чтобы убедиться, что эти два случайно сгенерированных ключа уникальны, вы можете добавить предупреждение, например =IF($A$1<>$A$2;"unique";"reload"), в электронную таблицу " ALL_KEYS ", а затем импортировать его в 4-ую электронную таблицу, например, =IMPORTRANGE("paste-here-whole-url-of-ALL_KEYS-spreadsheet"; "Sheet1!a10")

SUM: теперь всякий раз, когда вы включаете / отключаете свой «переключатель», он будет генерировать для вас случайный свежий ключ, который будет оставаться там до следующего нажатия переключателя (даже RELOAD вкладки браузера не изменит их случайным образом). сгенерированные ключи). как вы можете видеть, есть небольшое смещение key1 в " KEY1 " и key1 в " ALL_KEYS " & " 4th", но это все равно не заслуживает ...

enter image description here

... возможно, это можно использовать в качестве меры безопасности, чтобы проверить, открывает ли кто-нибудь из Google ваши личные таблицы;)

...