我想为整个文档创建一个静态的条件格式化(例如,在A1:Z 999上应用),如果在中间添加新的行,它不会被新的中间条件格式所替代。
详细情况:
作为一个例子,我有以下表内容
| A | B | C
----------------------
1 | A.1 | | FIRST LEVEL ROW
2 | | B.2 | SECOND LEVEL ROW
3 | | | C.3 THIRD LEVEL ROW
4 | | | C.4 THIRD LEVEL ROW
5 | | B.5 | SECOND LEVEL ROW
6 | | | C.6 THIRD LEVEL ROW
7 | A.7 | | FIRST LEVEL ROW
8 | | B.8 | SECOND LEVEL ROW
9 | | | C.9 THIRD LEVEL ROW
10 | | | C.10 THIRD LEVEL ROW我现在想要所有的行,其中有一种缩进的子行是以特定的方式着色。
我可以通过有条件的格式化来做到这一点
FIRST LEVEL
* apply if : AND(LENGTH($A1) > 0; LENGTH($B2) > 0)
* apply to : $A1:$C10
* modify : dark grey background color
SECOND LEVEL
* apply if : AND(LENGTH($B1) > 0; LENGTH($C2) > 0)
* apply to : $A1:$C10
* modify : light grey background color这工作顺利,没有任何问题。
但是,如果我现在在第7行之前插入两个新的空白行(创建新的第7行和第8行,并将包含A.7的第7行移动到第9行),条件格式将通过一个新条目进行扩展,为中间行7/8插入新规则,然后分割为原始的.
FIRST LEVEL (now split)
* apply if : AND(LENGTH($A1) > 0; LENGTH($B2) > 0)
* apply to : $A$1:$C$5;$A$9:$C$12
* modify : dark grey background color
SECOND LEVEL (now split)
* apply if : AND(LENGTH($B1) > 0; LENGTH($C2) > 0)
* apply to : $A$1:$C$5;$A$9:$C$12
* modify : light grey background color
FIRST LEVEL (intermediate)
* apply if : AND(LENGTH($A6) > 0; LENGTH($B9) > 0)
* apply to : $A$6:$C$8
* modify : dark grey background color
SECOND LEVEL (intermediate)
* apply if : AND(LENGTH($B6) > 0; LENGTH($C9) > 0)
* apply to : $A$6:$C$8
* modify : light grey background color这是不正确的,因为它不再检查邻接行(例如,A6/B9错误使用)。因此,每次添加新行时,我都必须修改条件格式,以便还原应用于所有行的原始行为。
长话短说:有没有办法告诉Excel使用静态条件格式,并简单地扩展应用于它的区域,而不是添加新的中间区域?
使用Excel 2013
发布于 2018-01-31 20:55:42
很容易通过应用整个列引用来避免:
$A:$C用于范围而不是$A1:$C10
并一次为一行设置规则(只需测试哪个列包含值,例如用于FIRST LEVEL )。
=AND($A1<>"",COUNTA($A1:$C1)) 以避免格式化列中所有列A:C为空的行。
https://stackoverflow.com/questions/39245267
复制相似问题