条件格式取决于相邻单元格的值

时间:2012-05-25 10:05:32

标签: google-apps-script google-sheets gs-conditional-formatting

我在Google Spreadsheets中设置了时间记录表。现在我试图根据电子表格中其他单元格的值来实现单元格的条件格式化:

来自格格G2的IF值大于06:30:00(hh:mm:ss) 来自单元格D2的AND值小于00:30:00(hh:mm:ss)或单元格D2为空白 然后将单元格D2的背景颜色设置为黄色。

来自格格G2的IF值大于08:45:00(hh:mm:ss) 来自单元格D2的AND值小于00:45:00(hh:mm:ss)或单元格D2为空白 然后将单元格D2的背景颜色设置为黄色。

如果不满足条件,背景颜色应重置为无。

我了解到使用公式是不可能的。有没有办法在Google Apps脚本中执行此操作?我不是脚本编写者,但知道如何插入片段,并且可以阅读并理解是否有人会很好地向我解释。

在搜索类似用例时,我发现了was this link对Google Apps脚本的唯一引用,这是对其功能的一般性讨论。

3 个答案:

答案 0 :(得分:2)

这应该可以通过为这样的函数创建onEdit触发器来实现:

function myOnEdit(e) {
  var nextColumnCell = e.range.offset(0, 1);
  if (e.range.getValue() == 'foo') {
    nextColumnCell.setFontWeight('bold');
  } else {
    nextColumnCell.setFontWeight('normal');
  }
}

有关触发器的更多信息,请参见here

答案 1 :(得分:0)

不知何故,我还找不到直接比较Google Spreadsheet中时间的方法。 但我可以从time转换为number格式。通过这样做,您将能够比较实体。

number格式的

1 time格式等于 00:00:00 ,因为1代表凌晨12:00

number格式的

0.5 等于time格式的 12:00:00 ,因为0.5代表中午12:00

number格式的

0.25 等于time格式的 6:00:00 ,因为0.5代表上午6:00

它没有回答主要问题,但我希望它有所帮助。

答案 2 :(得分:0)

现在可以使用公式。

选择ColumnD并从中清除任何现有的CF规则。格式,条件格式......,格式化单元格,如果...... Custom formula is

=and(row()<>1,or(and(G1>6.5/24,D1<0.5/24),and(G1>8.75/24,D1<0.75/24)))

黄色填充和完成