сгруппированное и чередующееся условное форматирование - PullRequest
0 голосов
/ 22 октября 2019

У меня есть 3 сайта, на каждом из них отработано несколько билетов, которые я проверяю. Я хотел бы чередовать 2 оттенка одного цвета для каждой группы: Зона 1 будет чередоваться между более светлым и темно-зеленым, Зона 2 будет чередоваться между двумя оттенками красного, а Зона 3 - с синим. Однако я не хочу чередовать каждый ряд, а скорее каждый другой билет. Билеты могут иметь переменное количество строк, которые сгруппированы с ним. Смотрите на скриншот, где я вручную применил пример форматирования, которое я собираюсь (это не окончательные цвета, они используются, потому что оригиналы не просматриваются после загрузки изображения).

Вот изображение спримерное форматирование:

enter image description here Я совершенно уверен, что здесь понадобится вспомогательный столбец, и хотя я неплохо справляюсь с Excel и условным форматированием, этот немного мне не подходит.

1 Ответ

1 голос
/ 22 октября 2019

Я буду использовать только столбцы Site и Ticket из вашего примера, чтобы продемонстрировать свое решение. Предположим, что столбец Site находится в Column A, а столбец Ticket - в Column B, я буду использовать Column C в качестве вспомогательного столбца следующим образом. Предположим, что первая строка предназначена для заголовков, которые не нужно форматировать:

  1. В ячейке C2 введите число 1, это значение жестко / статично;
  2. В ячейке C3 введите следующую формулу и перетащитедо конца таблицы:

    =MOD(IF(LEN($B3)=0,$C2,IF($B3=$B2,$C2,$C2+1)),2)

Тогда у вас должен быть вспомогательный столбец, показывающий либо 1, либо 0 в зависимости от заявкичисло.

Выделите вашу таблицу с ячейкой A1 (т.е. первая ячейка диапазона, исключая заголовок), являющейся активной ячейкой, установите следующие правила условного форматирования одно за другим:

| Conditional Formatting Rules: | Format      |
|-------------------------------|-------------|
| =(MAX($A$2:$A2)*10+$C2)=11    | Light Green |
| =(MAX($A$2:$A2)*10+$C2)=10    | Dark Green  |
| =(MAX($A$2:$A2)*10+$C2)=21    | Light Red   |
| =(MAX($A$2:$A2)*10+$C2)=20    | Dard Red    |
| =(MAX($A$2:$A2)*10+$C2)=31    | Light Blue  |
| =(MAX($A$2:$A2)*10+$C2)=30    | Dark Blue   |

Тогда у вас должно быть следующее:

Demo

Обратите внимание, столбец D Rule предназначен только для демонстрации, который не требуется вфактическая таблица. Он показывает, как мои формулы дифференцировали каждую строку на основе Site и Ticket.

РЕДАКТИРОВАТЬ # 2

Учитывая, что SiteИдентификаторы на самом деле представляют собой тексты, а не числа, здесь есть альтернативный подход, который все еще использует вспомогательный столбец, как показано в исходном решении, но правила условного форматирования будут изменены на:

| Conditional Formatting Rules:                                                               | Format      |
|---------------------------------------------------------------------------------------------|-------------|
| =(INDEX($A$2:$A2,AGGREGATE(14,7,ROW($A$1:$A1)/ISTEXT($A$2:$A2),1))&"#"&$C2)="Site Name 1#1" | Light Green |
| =(INDEX($A$2:$A2,AGGREGATE(14,7,ROW($A$1:$A1)/ISTEXT($A$2:$A2),1))&"#"&$C2)="Site Name 1#0" | Dark Green  |
| =(INDEX($A$2:$A2,AGGREGATE(14,7,ROW($A$1:$A1)/ISTEXT($A$2:$A2),1))&"#"&$C2)="Site Name 2#1" | Light Red   |
| =(INDEX($A$2:$A2,AGGREGATE(14,7,ROW($A$1:$A1)/ISTEXT($A$2:$A2),1))&"#"&$C2)="Site Name 2#0" | Dard Red    |
| =(INDEX($A$2:$A2,AGGREGATE(14,7,ROW($A$1:$A1)/ISTEXT($A$2:$A2),1))&"#"&$C2)="Site Name 3#1" | Light Blue  |
| =(INDEX($A$2:$A2,AGGREGATE(14,7,ROW($A$1:$A1)/ISTEXT($A$2:$A2),1))&"#"&$C2)="Site Name 3#0" | Dark Blue   |

Вотснимок экрана:

Demo2.0

Дайте мне знать, если у вас есть какие-либо вопросы. Ура :) 1061 *

...