【问题标题】:Google-Sheets Conditional Formatting based on multiple conditions基于多个条件的 Google-Sheets 条件格式
【发布时间】:2018-08-23 05:29:29
【问题描述】:

我正在尝试根据多个条件格式化单元格。我正在创建一个电子表格来跟踪借来的物品。假设我正在借书。我想要一份书籍清单,每个单元格中都有一个名字。然后在下面我想要 3 列:一列输入借书的名称、借阅日期和归还日期。我想把书名的单元格变成红色,如果这本书已经被借了,如果归还日期是空白的,这意味着书已经用完了。在我的示例屏幕截图中,单元格 A2 和 B2 应该是红色的。

我想出的条件公式是 =AND($A6=A2, $C6="") 用于 Book1 条件,但它仅在 C6 为空时有效,如果 C8 为空或 C 列中找到 Book1 且返回日期为空的其他单元格则无效。归还物品没有具体的截止日期,只是如果书已经被借,并且同一行的归还日期为空,那么顶部的书名应该变成红色。

【问题讨论】:

  • 我已经在条件格式的自定义公式部分应用了它。

标签: google-sheets gs-conditional-formatting


【解决方案1】:

您的问题标题询问“多个条件”,但非常具体而言,您希望根据 任何行本身匹配多个条件进行匹配。这超出了常见的 AND 运算符,并进入了可以处理范围的函数。您还需要为一本书多次签出和归还做好准备,这意味着没有单行可以管理给定书籍的状态; VLOOKUPINDEX/MATCH 也不在讨论范围内。相反,您实际上是在寻找与 该书是否已签出但未归还相匹配的01 值列表,然后根据是否为单元格着色有任何符合该条件的行

要一次对多个值进行操作,可以使用ARRAYFORMULA,然后将输出数组与OR 组合。但是,关于ARRAYFORMULA 的技巧之一是,为了保持将单值函数转换为数组值函数的不变性,您不能使用可以接受数组的函数。这意味着 ANDISBLANK 不能按照您希望的方式工作,但您可以通过使用 * 而不是 AND= "" 来解决这个问题。

一个这样的解决方案(working example):

=OR(ARRAYFORMULA((A1 = $A$5:$A) * ($C$5:$C = "")))

ARRAYFORMULA 并不是唯一一个对值列表进行操作的函数。您也可以直接使用FILTER 只返回匹配的行。在这里,您正在检查是否有任何行具有匹配的书名和空白返回值,然后确认该值不是FILTER 在没有匹配项时返回的#N/A

一个这样的解决方案(working example):

=NOT(ISNA(FILTER($A$8:$C, $A$8:$A = A1, $C$8:$C = "")))

当然,您也可以利用上面的tehhowch's solution with COUNTA and FILTER 只检查空白这一事实。但是,由于该解决方案不适用于任意表达式,因此如果您的需求变得更复杂,您可以使用 ARRAYFORMULAFILTER

【讨论】:

  • 抱歉标题误导/混淆。你把我想说的写得更好了。对于此表中的需求 COUNTA/FILTER 方法更像是我所需要的,我会借此机会了解更多关于 ARRAYFORMULA 的信息,但谢谢。
【解决方案2】:

比较 COUNTA 应用于 in 和 out 范围的结果。

例如COUNTA(FILTER($B6:$B,$A6:$A=A2)) 将计算特定图书的签出次数,而COUNTA(FILTER($C6:$C, $A6:$A=A2)) 将计算重新签入的次数

【讨论】:

  • 谢谢,这更像是我想要的。我想我并没有朝着正确的方向努力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-23
  • 1970-01-01
相关资源
最近更新 更多