【问题标题】:Excel: Conditional formatting for clusters of valuesExcel:值簇的条件格式
【发布时间】:2013-05-05 17:42:55
【问题描述】:

在 EXCEL 2010 电子表格中,如何为集群单元格值创建交替填充颜色,并在达到新值集群时更改?

假设 A 列包含以下值:

价值

123

123

123

456

456

789

789

789

789

我希望 A2:A4 中的所有 123 个值都具有相同的填充颜色(例如绿色),A5:A6 中的所有 456 个单元格都具有新的填充颜色(例如蓝色),并且所有A7:A10 中的 789 个单元格返回用于 123 个值的填充颜色(再次为绿色)。

这与许多重复值示例不同。

对于值会动态变化且无法预料的报告,我想一遍又一遍地重复这个练习。

VBA 解决方案会很好。

谢谢。

【问题讨论】:

标签: excel conditional-formatting


【解决方案1】:

如果你想要交替颜色,试试这个:

将整个范围格式化为蓝色。将此公式输入到辅助列中,例如 B 列,从第 2 行开始并向下复制。

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

然后选择行并使用此公式添加条件格式

=$B2

选择绿色作为单元格填充。见截图。您可以隐藏 B 列。

【讨论】:

  • 这太棒了!太感谢了!你知道,我一直在追求辅助列的路径,但从未超越评估前一行到当前行,以使用 IF 函数。我将在下面对此方法稍作修改。
【解决方案2】:

据我了解,您可以使用普通的简单条件格式。

(请记住,我是从法语翻译的,所以您的菜单可能会有所不同)。

  1. 选择您的数据;
  2. Home 选项卡上单击Conditional formatting,然后突出显示Color scales 并选择最适合您的选项。您可以根据需要自定义此设置。

这将为每个重复的数字使用相同的颜色。如果您的范围很大并且数据接近(颜色会非常相似,难以区分),这可能不合适。

【讨论】:

  • +1 最佳方式。只需注意 Color Shades 将是 Color Scales(至少对于美国 Excel)
  • 我在文档中忽略了这一点。我想将解决方案呈现为图像比尝试解释分步说明更容易找到解决方案。仍在尝试查看这是否可以跨越整行的颜色。我玩了一下,觉得不可能。
【解决方案3】:

感谢@teylyn 指导我解决这个难题。

我在这里添加了一个细微的变化,添加了两个级别的条件格式来控制颜色,并演示了如何让颜色阴影跨越行。

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

“帮助”列的工作方式与@teylyn 建议的相同,将 A 列中的每个单元格值评估为上面的单元格值。如果计算结果为真,则帮助列使用前一行中的列 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 选项卡以避免用户恶作剧。
  • 请注意,在条件格式公式中引用另一个工作表仅适用于 Excel 2013 及更高版本。对于早期版本,辅助列必须在同一张纸上。此外,如果辅助列仅包含 1 或 0 值,则它们在条件评估中已经表现得像 TRUE 或 FALSE,因此您不需要使用 = 比较。 =B2 如果包含 1,则为 TRUE,如果包含 0,则为 FALSE。
猜你喜欢
  • 2020-11-16
  • 2023-03-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多