【问题标题】:Google Sheets: how to trigger random function? [duplicate]谷歌表格:如何触发随机功能? [复制]
【发布时间】:2023-03-08 06:20:01
【问题描述】:

我在 Google 上有一张工作表,并一直在寻找一种解决方案,说明如何使随机化脚本仅在需要时才起作用,而不是每次我打开或刷新工作表时。

这是一个例子。让我们看看这张纸是这样的:

B5单元格代码如下:

=index(B1:B3; randbetween(1;3); 1)

每次我刷新或加载文档时,它都会随机告诉我头发的颜色。

但是如果我每周只想要一次新的发色,但需要时不时打开文档怎么办?

我试图在代码中添加一个标志。

并更改了B5的代码:

=if(B7=true; index(B1:B3; randbetween(1;3); 1); )

所以它只有在检查标志时才会启动 randbetween 函数。

但是!当标志未选中时,头发颜色显示为空(右,因为它在IF 函数中有一个空格)。如何保持头发颜色和以前一样,只有在我检查标志时才改变?

Here's the spreadsheet.

【问题讨论】:

    标签: if-statement google-sheets random checkbox google-sheets-formula


    【解决方案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


    【讨论】:

      【解决方案2】:

      也许您只是制作一个按钮来运行您每周会单击一次的功能?

      function onOpen() {
          var ui = SpreadsheetApp.getUi();
      
          ui.createMenu('The name of menu')
              .addItem('Button name', 'functionName').addToUi(); 
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-09
        • 2021-11-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多