Google表格中的条件格式:我可以在"自定义公式是:"字段中使用自定义函数吗?

bas*_*day 7 google-sheets google-apps-script gs-conditional-formatting custom-function

在Google电子表格中应用条件格式时,我想知道是否可以使用我在"自定义公式"字段中通过脚本编辑器创建的自定义函数.这是我做的:

  1. 去'脚本编辑器'并键入我的fn如下:

    function foo (param1, param2, param3) {
      if (condition to check) {
        ...some action;
        return true;
      } else {
        return false;
      }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    并保存.

  2. 在工作表中,选定单元格并打开"条件格式"对话框

  3. 创建新规则并在字段中'自定义公式是:'键入以下内容

    =foo(param1, param2, param3)
    
    Run Code Online (Sandbox Code Playgroud)

不幸的是,这不起作用.


加成

这是样本表 ......

看那里的两个任务.我的目标是将"任务标题"自动写入黄色字段内(请参阅第6行中我手动输入值的任务).

我已经尝试的是: - 分配给H5:BB7公式中的每个单元格:=if(H$4=D5; B5; "")
这将检查开始日期是否等于单元格日期并显示任务标题.这样就可以解决问题,但是即使"溢出"打开,具有任务标题的单元格的内容也会被剪切,因为下一个单元格不为空.

gst*_*ein 8

我还发现自定义函数不能用于条件格式。不过,我找到了一个非常简单的解决方法。

我尝试使用的自定义公式是: =hasGreen(CELL("address",$H3)&":"&CELL("address",$M3))

IE。根据该行中的一系列其他单元格设置单元格格式。

我的解决方案是将上述公式放入 P 列。然后我将条件格式的自定义公式更改为=P3

工作起来就像一个魅力。对 H3:M3 的任何更改都会调用hasGreen并更新 P3 的值。条件格式会记录 P3 的任何更改,并调整格式。


Rub*_*bén 5

简答

自定义函数不能用作 Google 表格的条件格式内置用户界面中自定义公式的一部分。

解释

在 Google 表格中,acustom function类似于电子表格的内置函数,但由用户使用 Google Apps 脚本编辑器编写。它们不能修改其他对象,只能返回一个或多个值。

另一方面,只有在将自定义函数添加到单元格或其中至少一个参数发生更改时,才会计算自定义函数。它们不能使用非确定性函数作为参数,如 NOW()、TODAY()、RAND() 和 RANDBETWEEN()。

测试

为了测试简短回答中的陈述,我创建了一个执行以下操作:

  1. 创建一个简单的自定义函数
功能二(){
  返回2;
}
  1. 在条件格式侧面板中添加自定义函数作为自定义公式的一部分
=二()=2

结果:什么都没有改变。

参考

  • 自定义函数不能用于条件格式自定义公式,这是非常蹩脚的。我也可以验证它对我不起作用。 (4认同)