Выделение 3 ячеек, если выполнено условие - PullRequest
0 голосов
/ 16 января 2019

У меня вопрос по условному форматированию в Excel.

У меня есть лист, который действует как календарь для членов моей команды, в котором календарные даты находятся в строке 1, а имя каждого человека - в столбце А. Каждый человек занимает 3 строки без объединения, поэтому первое имя занимает строки 2–4, а следующее человек от 5 до 7 и так далее. Если человек не будет работать в определенный день, в соответствующем первом ряду будет написано «Вне офиса». Если предположить, что 1 января занимает столбец B, и тогда первый человек будет отсутствовать, тогда значение ячейки B2 будет «отсутствовать». Используя условное форматирование, я смог выделить B2: B4 без проблем. Однако я смог сделать это только для одного человека.

Я хотел бы знать, есть ли способ распространить некоторую формулу условного форматирования на все 20 элементов, чтобы мне не приходилось делать то же самое еще 19 раз (больше, если присоединяются новые члены).

Ответы [ 2 ]

0 голосов
/ 16 января 2019

Если вы используете условное форматирование Формула , то вы можете использовать следующий код для извлечения значения из текущей или предыдущей строки в шаблоне 2, 5, 8, 11 и т. Д .:

INDEX(A:A, 3*INT((ROW()-2)/3)+2, 1)

Чтобы разбить его: Использование INDEX(A:A и , 1) получит нам строку из столбца A (конечно, это перемещается так, как это делает ваше условие форматирования) - сама строка определяется неуклюжей путаницей в середине : 3 * INT((ROW() - 2) / 3) + 2

Помещение этого кладжа в обычный текст: начните с текущей строки, вычтите 2, округлите вниз до кратного 3, затем снова добавьте 2

Row | Subtract 2 | Round down to 3 | Add 2
  1 |     -1     |         -3      |   -1
  2 |      0     |          0      |    2
  3 |      1     |          0      |    2
  4 |      2     |          0      |    2
  4 |      3     |          3      |    5
 .. |    ....    |        ....     |   ..
 28 |     26     |         24      |   26
 29 |     27     |         27      |   29
 30 |     28     |         27      |   29
 31 |     29     |         27      |   29
 32 |     30     |         30      |   32

Итак, теперь вы можете просто применить условное форматирование для целого столбца с формулой, подобной этой:

=INDEX(A:A, 3*INT((ROW()-2)/3)+2, 1) = "Out of Office"

И он будет применяться к блокам по 3 строки в каждом столбце, начиная со строки 2 (или -1)

0 голосов
/ 16 января 2019

Так что, если в какой-либо ячейке в столбце B содержится «нет на месте», то эта ячейка и следующие две ячейки ниже должны быть отформатированы? Или, другими словами, ячейка должна быть отформатирована, если сама ячейка или строка 1 выше или ячейка 2 выше содержат "out of office"?

Этого можно достичь, используя следующее правило форматирования условия для всего столбца B:

enter image description here

Условное правило форматирования на основе формулы:

=OR(B1="out of office",B1048576="out of office",B1048575="out of office")

Справочная информация: в CF ссылки похожи на карусель. Так что же в B1 это

=OR(B1="out of office",B1048576="out of office",B1048575="out of office")

будет в B2, затем

=OR(B2="out of office",B1="out of office",B1048576="out of office")

(B1048576 плюс 1 ряд = B1)

и B3, затем

=OR(B3="out of office",B2="out of office",B1="out of office")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...