我有一个 Excel 表作为数据库,其中每一行都有一个类别,并且总是按类别排序。
Category Item
1 AAA jjj
2 AAA kkk
3 AAA lll
4 BBB mmm
5 BBB nnn
6 CCC ooo
7 CCC ppp
8 CCC qqq
9 DDD rrr
我使用条件格式来直观地对类别进行分组:例如,新类别的第一行应该在其上方有一个边框,类别值应该为粗体。我通过将公式应用于行来实现这一点= $A2<>$A1
,效果很好……直到我使用筛选来隐藏行。
例如,如果过滤隐藏行,6/CCC/ooo
则第 7 行和第 8 行似乎是 BBB 类别的一部分。
有没有办法创建一个条件格式公式“如果此单元格中的值与第一个单元格中的值不同可见的在我上面排”?
答案1
编辑:这不是一个理想的答案。它要求行按类别排序;否则,它将失败。它还需要添加一个额外的列(您可以隐藏它)用于确定行是否被隐藏。
我会选择并接受任何符合问题标题的答案,即基于前可见行,而不是第一的值的出现。
格式化第一次出现的值
添加“可见”列,使用以下公式计算您的行是否可见:
SUBTOTAL(103,B2)
...其中 103 是一个“神奇数字”(它表示函数
COUNTA
,忽略可见单元格),并且B2
是与您的类别位于同一行的列。然后您可以隐藏此列。使用条件公式像这个:
=COUNTIFS($B$1:$B1,$B2,$D$1:$D1,1)=0
...
B
包含您的类别的列在哪里,D
包含您的“可见”公式的列在哪里。
怎么运行的
$B2
它计算当前类别值 ( ) 在该列中出现(可见)的次数,从第一行到该行之前的行。如果该值为0
,则可以应用自定义格式。
行动中
这里我在整个行上应用了一种条件格式,以添加上方的边框,并在类别列上应用了另一种条件格式,以加粗和加深第一个类别名称。您可以通过将重复的类别值设置为白色来“隐藏”它们;我在这里将它们包括进来只是为了澄清发生了什么。