如果满足条件则突出显示3个单元格

时间:2019-01-16 08:13:26

标签: excel

我对Excel中的条件格式有疑问。

我有一张纸用作我的团队成员的日历,其中日历日期在第1行中,每个人的姓名在A列中。每个人占据3行并没有合并,因此名字在第2至4行中占据,下一个5至7人,依此类推。如果此人在特定的一天不上班,则会在相应的第一行上写上“不在办公室”。假设1月1日占据列B,那么第一个人将不在办公室,那么单元格B2的值将为“不在办公室”。使用条件格式,我可以毫无问题地突出显示B2:B4。但是,我只能对一个人执行此操作。

我想知道是否可以将条件格式公式扩展到所有20个成员,这样我就不必再做19次相同的事情(如果有新成员加入,则更多)。

2 个答案:

答案 0 :(得分:1)

因此,如果列B中的任何单元格包含“不在办公室”,那么该单元格和下面的下两个单元格应进行格式化吗?或者换句话说,如果一个单元格本身或上面的1行或上面的2行包含“不在办公室”,则该单元格应该被格式化?

这可以通过对整列B使用以下条件格式规则来实现:

enter image description here

基于公式的条件格式设置规则:

=OR(B1="out of office",B1048576="out of office",B1048575="out of office")

背景:在CF中,引用就像轮播一样。所以B1中的是

=OR(B1="out of office",B1048576="out of office",B1048575="out of office")

将在B2中,然后

=OR(B2="out of office",B1="out of office",B1048576="out of office")

({B1048576加1行= B1

然后在B3

=OR(B3="out of office",B2="out of office",B1="out of office")

答案 1 :(得分:1)

如果您使用条件格式公式,则可以使用以下代码从模式2、5、8、11等的当前或上一行中检索值:

rhs

将其分解:使用INDEX(A:A, 3*INT((ROW()-2)/3)+2, 1) INDEX(A:A将使我们从列A获得一行(当然,这会随着您的格式化条件而移动)-该行本身是由笨拙地指定的中间乱七八糟:, 1)

将合并内容放入纯文本中:从当前行开始,减去2,将向下向下舍入为3的倍数,然后再次添加2

3 * INT((ROW() - 2) / 3) + 2

所以-您现在可以使用如下公式来应用全列条件格式:

Row | Subtract 2 | Round down to 3 | Add 2
  1 |     -1     |         -3      |   -1
  2 |      0     |          0      |    2
  3 |      1     |          0      |    2
  4 |      2     |          0      |    2
  4 |      3     |          3      |    5
 .. |    ....    |        ....     |   ..
 28 |     26     |         24      |   26
 29 |     27     |         27      |   29
 30 |     28     |         27      |   29
 31 |     29     |         27      |   29
 32 |     30     |         30      |   32

它将适用于每列中一次包含3行的块,从第2行(或-1)开始