基于多种条件的Google表格条件格式

时间:2018-03-14 15:36:48

标签: google-sheets gs-conditional-formatting

我正在尝试基于多个条件格式化单元格。我正在创建一个电子表格来跟踪借来的物品。假设我在借书。我希望有一个书籍清单,每个单元格中有一个名称。然后在下面我想要有3列:一列输入借书的名称,借阅日期和返回日期。我想用书名RED来翻转单元格,如果这本书已被借用,并且如果返回日期是BLANK,则意味着书已经出局。在我的示例屏幕截图中,单元格A2和B2应为红色。

对于Book1条件,我提出的条件公式是=AND($A6=A2, $C6=""),但只有当C6为空时它才有效,如果C8为空或者C列中找到Book1的其他单元格并且返回日期为空白。返回商品没有具体的截止日期,只是如果借书并且同一行的退货日期为空,则顶部的书名应变为红色。

Example

2 个答案:

答案 0 :(得分:1)

比较应用于进出范围的COUNTA的结果。

E.g。 COUNTA(FILTER($B6:$B,$A6:$A=A2))将计算特定图书的签出次数,而COUNTA(FILTER($C6:$C, $A6:$A=A2))将计算在其中检查的次数

答案 1 :(得分:0)

您的问题标题询问"多个条件",但非常具体地说,您希望根据任何行匹配匹配多个条件匹配 EM>。这超出了常见的AND运算符,并且可以处理可以处理范围的函数。您还需要准备好检查并多次退回的书籍,这意味着没有一行可以管理给定书籍的状态; VLOOKUPINDEX / MATCH也不在考虑之列。相反,您有效地希望生成一个01值列表,这些值与匹配该书是否已被检出而不返回,然后为单元格着色基于是否有任何符合该条件的行

要一次操作多个值,可以使用ARRAYFORMULA,然后将输出数组与OR组合。然而,关于ARRAYFORMULA的一个技巧是,为了保持将单值函数变成数组值函数的不变量,你不能使用可以接受数组的函数。这意味着ANDISBLANK不会按您喜欢的方式运作,但您可以使用*代替AND来解决这个问题。和= "" ISBLANK

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

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

ARRAYFORMULA不是唯一能够对值列表进行操作的函数;您也可以直接使用FILTER仅返回匹配的行。在这里,您要检查任何行是否具有匹配的书名和空白返回值,然后确认该值不是#N/AFILTER在没有匹配时返回。{/ p >

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

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

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