基于表的当前列中的值的条件格式

时间:2014-03-16 13:39:47

标签: excel excel-formula conditional-formatting excel-indirect

我有一个包含三列的表:

Name Task Hours
Sheena Task1 5
Sheena Task2 3
Chris Task1 5
Chris Task1 2.5

我正在尝试有条件地格式化Hours列。如果此人的总小时数超过7.5,我想格式化那里的单元格。在示例中,应格式化包含Sheena小时数的单元格,因为她的总计超过7.5Chris等于7.5,所以不应该格式化。

我认为公式是这样的:

=SUMIF([Name],INDIRECT("RC[-2]",0),[Hours])>7.5  

但这不起作用。以下是:

=SUMIF($A$2:$A$5,$A2,$C$2:$E$5)>7.5  

但是很麻烦,因为它没有使用列引用。

2 个答案:

答案 0 :(得分:0)

这有效:

=SUMIF(Name, INDIRECT("RC[-2]", FALSE), Hours)>7.5

答案 1 :(得分:0)

“沿着这些方向行事”的公式看起来非常好,但不幸的是Any structured reference throws an error in CF

这继续提到INDIRECT的包装。这样的事情确实有效:

=SUMIF(INDIRECT("Table2[Name]"),INDIRECT("RC[-2]",FALSE),INDIRECT("Table2[Hours]"))>7.5  

但就混乱而言,我认为甚至比你的凌乱还要糟糕:

=SUMIF($A$2:$A$5,$A2,$C$2:$E$5)>7.5  

我认为@smozgur提供了一个很好的“妥协”,尽管这确实涉及一些“幕后”的工作。他已将表中的数据范围命名为HoursName(因此缺少方括号 - 这些不是结构化引用)。使公式看起来几乎与您希望的一样但可能会令人困惑,因为如果将新行添加到表中,[Hours]的范围将自动扩展 - 但命名范围Hours将不会。 / p>

因此,假设与列中其他地方的数据没有冲突,我的偏好是:

 =SUMIF(A:A,A1,C:C)>7.5  

_至少它很短! (但我承认我喜欢结构化引用。)