10

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

  1. 转到“脚本编辑器”并输入我的 fn 如下:

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

    并保存。

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

  3. 创建新规则并在“自定义公式为:”字段中输入以下内容

    =foo(param1, param2, param3)
    

不幸的是,这没有奏效。


添加

这是样品表...

看看里面的两个任务。我的目标是让“任务标题”自动写入黄色字段内(参见第 6 行中我手动输入值的任务)。

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

4

2 回答 2

5

简短的回答

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

解释

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

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

测试

为了测试简短答案中的陈述,我创建了以下内容:

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

结果:没有任何改变。

参考

于 2016-02-16T00:09:51.477 回答
5

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

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

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

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

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

于 2018-12-20T06:02:04.493 回答