Excel:针对数值簇的条件格式化

13
在EXCEL 2010电子表格中,如何为聚类的单元格值创建交替填充颜色,当到达新的值聚类时更改?
假设列A包含以下值:
VALUE
123
123
123
456
456
789
789
789
789
我想让A2:A4中的所有123值具有相同的填充颜色(例如绿色),A5:A6中的所有456个单元格具有新的填充颜色(例如蓝色),而A7:A10中的所有789个单元格回到用于123值的填充颜色(再次为绿色)。
这与许多重复值示例不同。
这是一个练习,我想在报告中反复进行,其中值将动态更改,并且无法预测。
VBA解决方案可以接受。
谢谢。

1
现在有一个VBA解决方案,该解决方案提供了类似的问题:http://stackoverflow.com/questions/43030797/how-to-write-macro-for-highlight-filtered-rows-alternatively/43031670#answer-43031670 - S Meaden
3个回答

20

如果你想要交替颜色,请尝试以下方法:

将整个范围设置为蓝色。在帮助列中输入此公式,例如B列,从第二行开始复制到底部。

=IF(A2=A1,B1,IF(B1=1,0,1))

然后选择行,并使用以下公式添加条件格式

=$B2

将单元格填充颜色选择为绿色。请参见屏幕截图。您可以隐藏B列。

enter image description here


这太棒了!非常感谢!你知道吗,我一直在追求使用辅助列的方法,但从来没有超越过评估前一行到当前行,以使用IF函数。我将在下面发布对此方法的轻微修改。 - 504more

6
据我所知,您可以使用普通的条件格式设置来完成此操作。
(请记住,我是从法语翻译过来的,因此您的菜单可能有所不同)。
1. 选择您的数据; 2. 在“开始”选项卡上,单击“条件格式”,然后突出显示“色阶”,选择最适合您的选项。如果需要,您可以自定义此选项。
这将为每个重复的数字使用相同的颜色。如果您的范围很大并且数据接近(颜色非常相似,难以区分),则可能不适合使用此方法。 enter image description here

2
+1 最佳选择。只是一个提示,“Color Shades”应该是“Color Scales”(至少对于美国的Excel)。 - user2140261
我在文档中完全忽略了这一点。我猜将解决方案呈现为图像会比尝试解释逐步说明更容易找到解决方案。仍在尝试查看是否可以跨整个行延伸颜色。我稍微尝试了一下,不认为这是可能的。 - 504more

0

感谢@teylyn为我提供了解决这个难题的正确方法。

在此我添加了一个小变化,增加了两个级别的条件格式来控制颜色,并演示如何使颜色阴影跨越行。

在这个扩展的解决方案中,我添加了一个额外的“值”列,只是为了满足添加填充跨越行的附加要求。

“Helper”列与@teylyn建议的方式相同,评估列A中每个单元格的值与上面的单元格值是否相等。如果评估结果为true,则helper列使用前一行中的列C值来设置当前行列C值。如果为false,则将当前行列C值设置为0。

一旦这些值被设置,就可以通过选择列C中的所有值(选择C2,单击ctrl-shft-down箭头),然后设置第一个条件规则来使用绿色填充,如果$C2评估为1,则添加一个新规则,将填充颜色设置为蓝色,如果$C2评估为0。

要使颜色跨越行,请更改“应用于”文本框,以跨越从$A$2:$C$10的整个值范围。

这是一个绝妙的解决方案。现在,如果要添加第三种颜色,或者可能是随机颜色……那就留到另一天吧。

Stack Overflow可能不允许我发布显示解决方案的图片(抱歉)。

没有图片,但以下是表格值的样子:

Row Value   Helper
123 ABC 1
123 DEF 1
123 GHI 1
456 JKL 0
456 MNO 0
789 PQR 1
789 STU 1
789 VWX 1
789 YZA 1

这里是更新C列数值的公式:

=IF(A2=A1,C1,IF(C1=1,0,1))


另一个修改可以消除打印包含隐藏字段的表格时可能出现的麻烦,并限制用户破坏格式的能力。将一个选项卡重命名为“Helper”,并创建一个“Helper”列,用于存储在Sheet1上用于条件格式设置的值,如下所示:=IF(Sheet1!F2=Sheet1!F1,Helper!A1,IF(Helper!A1=1,0,1))在设置条件格式时,评估语句如下:=Helper!$A2=0 =Helper!$A2=0可以隐藏Helper选项卡以避免用户恶意操作。 - 504more
1
请注意,在条件格式公式中引用另一个工作表仅适用于Excel 2013及更高版本。对于早期版本,辅助列必须在同一工作表上。此外,如果辅助列仅包含1或0值,则它们已经像TRUE或FALSE一样在条件评估中起作用,因此您不需要使用=比较。如果B2包含1,则=B2为TRUE,如果包含0,则为FALSE。 - teylyn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接