我在Google上有一个工作表,并且一直在寻找一种解决方案,以使随机脚本仅在需要时起作用,而不是每次打开或刷新工作表时都起作用。
这里是例子。让我们看一下这样的工作表:
B5单元具有以下代码:
=index(B1:B3; randbetween(1;3); 1)
每次刷新或加载文档时,它会随机告诉我头发的颜色。
但是,如果我只希望每周一次新发色,但又需要不时打开文档怎么办?
我试图在代码上加一个标志。
并更改了B5的代码:
=if(B7=true; index(B1:B3; randbetween(1;3); 1); )
因此,仅当选中该标志时,它才会启动randbetween函数。
但是!取消选中该标志时,染发显示为空(右,因为它在IF
函数中有空格)。如何保持发色与以前相同,并且仅在检查标志后才能更改?
答案 0 :(得分:1)
在您的 B5 中使用:
=ARRAYFORMULA(IFNA(VLOOKUP(
IFNA(REGEXEXTRACT(TEXT(PI()^3*PRODUCT(LEN(IF(B7=TRUE;
{WHATTHEFOXSAY(); WHATTHEFOXSAY(); WHATTHEFOXSAY();
WHATTHEFOXSAY(); WHATTHEFOXSAY(); WHATTHEFOXSAY();
WHATTHEFOXSAY(); WHATTHEFOXSAY(); WHATTHEFOXSAY()};
{WHATTHEFOXSAY(); WHATTHEFOXSAY(); WHATTHEFOXSAY();
WHATTHEFOXSAY(); WHATTHEFOXSAY(); WHATTHEFOXSAY();
WHATTHEFOXSAY(); WHATTHEFOXSAY(); WHATTHEFOXSAY()})))*
(TRANSPOSE(SEQUENCE(1; 1; 29; 73)))*PI()^3; "0");
JOIN("|"; SORT({3;2;1}; 1; IFERROR(0/C2)))); 2);
{ROW(B1:B3)&""\ B1:B3}; 2; 0)))
对于每周重新计算,请在 C1 中使用它:
=IF(IFERROR(WEEKDAY(TODAY(); 2); 0)=1; {"";1}; {"";0})
因此每次您选中/取消选中复选框以及每个 понедельник(星期一)时,B5 的值都会发生变化
WHATTHEFOXSAY
函数 here答案 1 :(得分:0)
也许您只需要单击一个按钮即可运行每周要单击一次的功能?
newIndex