2016-08-31 3 views
0

Я хочу создать статическое условное форматирование для всего документа (например, применяется на A1: Z999), которое не будет заменено новыми промежуточными условными формами при добавлении новых строк между ними.Область статического условного форматирования Excel

Подробно:

В качестве примера я следующее содержание таблицы

| 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 

я теперь хочу все строки, которые имеют своего рода отступом ребенка ряд, чтобы быть окрашены в определенным образом, например,

  • строки 1 и 7 в темно-серого цвета, так как они имеют ряд 2 и 8 в качестве отступом дочерних строк (первый уровень)
  • строки 2,5,8 в светло-серый в связи с отступом дочерних строк 3,6 , 9 (ВТОРОЙ УРОВЕНЬ)
  • и так далее

Я могу сделать это с помощью условного форматирования

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 и перемещая строку 7, содержащую A.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 

Это не правильно больше, так как оно не проверяет adjacend строк больше (например, A6/B9 ложно используется). Следовательно, я должен изменить условное форматирование каждый раз, когда добавляю новые строки, чтобы восстановить исходное поведение, применяемое ко всем строкам.

Краткая история: есть ли способ сказать Excel использовать условное форматирование STATIC и просто расширить область, к которой она применяется, вместо добавления новых промежуточных областей?

Работа в Excel 2013

+0

Это правда, я могу просто применить это к полной строке через '* применимо к $ 1: $ 10', но проблема остается прежней. При вставке новых строк область снова разбивается на '$ 1: $ 5, $ 9: $ 12' и' $ 6: $ 8' – HeXor

+0

Я могу определенно воспроизвести проблему с Excel 2013 (15.0.4849.1003) в Windows 7 – HeXor

ответ

0

легко избежать, применяя целые ссылки столбцов:

$A:$C для диапазона, а не $A1:$C10

и устанавливать правила для одной строки в то время, то есть просто проверить, какой столбец содержит значение, например, для FIRST LEVEL:

=AND($A1<>"",COUNTA($A1:$C1)) 

, где А ND следует избегать форматирования строк, где все столбцы A: C пусты.