我有一个包含三列的表:
Name Task Hours
Sheena Task1 5
Sheena Task2 3
Chris Task1 5
Chris Task1 2.5
我正在尝试有条件地格式化Hours
列。如果此人的总小时数超过7.5
,我想格式化那里的单元格。在示例中,应格式化包含Sheena
小时数的单元格,因为她的总计超过7.5
但Chris
等于7.5
,所以不应该格式化。
我认为公式是这样的:
=SUMIF([Name],INDIRECT("RC[-2]",0),[Hours])>7.5
但这不起作用。以下是:
=SUMIF($A$2:$A$5,$A2,$C$2:$E$5)>7.5
但是很麻烦,因为它没有使用列引用。
答案 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提供了一个很好的“妥协”,尽管这确实涉及一些“幕后”的工作。他已将表中的数据范围命名为Hours
和Name
(因此缺少方括号 - 这些不是结构化引用)。使公式看起来几乎与您希望的一样但可能会令人困惑,因为如果将新行添加到表中,[Hours]
的范围将自动扩展 - 但命名范围Hours
将不会。 / p>
因此,假设与列中其他地方的数据没有冲突,我的偏好是:
=SUMIF(A:A,A1,C:C)>7.5
_至少它很短! (但我承认我不喜欢结构化引用。)