【发布时间】:2021-04-30 08:00:58
【问题描述】:
我在 2019 年问了一个问题,我记得有一次我被要求创建一个新问题,而不是拉回旧问题并在那里再问第二个问题。 --> Conditional Formatting - Multi-conditional, InStr-check, lowest value
我的用例需要调整,而我又在为那个而苦苦挣扎。 如果在我的 Excel 电子表格中有以下 ListObject/Table,并且我想为每一行突出显示最便宜的价格。这适用于以下条件格式公式:
我还需要的是,只要列中有以“AAA”或“XXX”开头的值(在本例中为列 [H]、[I] 或 [J]),则应突出显示该值,即使另一列中的值可能较低。但是,只有在 [D] 列中的值为“A”时,才应应用此规则。为简单起见,那些经过特殊处理的列总是从列 [H] 开始并持续进行。它们不会发生在某处之间。
不会出现 [H] 和 [I] 列都被填满的情况。它总是非此即彼。但列[J] 可以有额外的值。
到目前为止我所拥有的:
=$D3="A"
格式化没有高亮显示的单元格,应用于列 [J] 到 [AC] 作为下面下一条规则之上的额外规则,当列 [D] 具有值时,范围 [H:J] 之后的每个单元格都将突出显示为白色一个”。
@ProfoundlyOblivious 帮助我完成了主要公式:
=IFERROR(AND(H3>0,H3=SEARCH("A",$D3)*H3*1/SEARCH("AAA",H$2)^-1),IF(H3<>"",H3=MIN($H3:$AC3),""))
不起作用的是,例如,在第 2184 到 2189 行中根本没有突出显示。它应该突出显示 [H] 列中的值,因为它们显然是最低的值。但不知何故,主要公式需要调整。
编辑:我的尝试是这个,但它错过了一些行。现在可以看到第 2184 到 2189 行中的深绿色单元格,但是如果最便宜的价格在 [I] 列中,它会遗漏一些。
=IF(J3<>"",J3=MIN($H3:$J3),"")
【问题讨论】:
-
第一个屏幕截图上的列标题与帖子中使用的不同,最后一个屏幕截图根本没有列标题,这使您难以理解您的问题。一个条件规则应该足以涵盖所有情况,但您需要以清晰的方式呈现 CF 的算法。
-
你是对的,对不起。我编辑了我的帖子。
-
要着色的范围仅包含空单元格或值>0。您想为行中的最小值着色。如果 D 列等于“A”,则仅检查列标题开头带有“AAA”或“XXX”的列。对吗?
-
一行中的单元格可以有空单元格或高于 0 的值。如果列 [D] 包含值“A”,则应考虑标题部分为“AAA”和“XXX”的列只为“什么是最低价”。如果列 [D] 的值为“B”,则应考虑整行(从列 [H] 到无穷大)来确定“最低价格是多少”。
标签: excel conditional-formatting