Excel 2010 – 条件格式化,在同一行中为相邻的单元格着色

Excel 2010中是否可以设置条件格式规则,以便在特定列中的单元格具有特定值时突出显示行中的所有非空单元格?

我有一个报告,其中每一行标识一天。 我想用灰色来表示相对于周六和周日的行。 一天存储在C栏

我知道如何突出显示列C中的单元格,但是如何轻松地将单元格C的格式扩展到同一行中的相邻非空单元格?

没有macros而且没有使用INDIRECTfunction,这很容易实现

假设你有从第2行开始的数据,并且C列中的“day”是一个文本值,那么这样做:

select整个范围的数据,例如A2:J100

在条件格式中应用需要应用于第一行的公式,例如

=AND($C2="Saturday",A2<>"")

如果该行的列C是“星期六”,并且单元格本身不是空白,那么这将对范围内的所有单元格应用格式。 注意C2在前面需要$,因为它适用于整个行A2的C不需要$

如果你想申请周六和周日相同types的格式,然后使用OR,即

=AND(OR($C2="Saturday",$C2="Sunday"),A2<>"")

….或如果列C条目是实际date做出这一点

=AND(WEEKDAY($C2,2)>5,$C2<>"",A2<>"")

看到最后一个CF公式演示的示例工作簿

从这个线程的 John答案中获得灵感,我在条件格式上使用了“间接”函数。

  1. select条件格式
  2. select新规则
  3. select“使用公式确定要格式化的单元格”
  4. 周日input公式= WEEKDAY(INDIRECT(“c”&ROW()))= 1#
  5. input你想要的格式(文字颜色,填充颜色等)。
  6. select确定保存新的格式
  7. 在条件格式中打开“pipe理规则”
  8. 如果你看不到你的新规则,请select“这个工作表”。
  9. 在新规则的“适用于”框中,input= $ A $ 1:$ J $ 35(或者您希望条件格式的扩展取决于您的工作表)
  10. 再次执行,这次插入星期六公式= WEEKDAY(INDIRECT(“c”&ROW()))= 7#

这个公式只有一个问题。 当列C中的单元格为空时,它将被读为7,因此该行将被格式化,就好像它是星期六一样。 你知道为什么吗?