Я пытаюсь составить расписание для ограниченного количества тренингов (около 50), которые распределены между ограниченным количеством мест (около 15), и я ищу более разумный подход, чем тот, который я использую в настоящее время.
Расписание состоит из двух электронных таблиц:
Таблица 1 содержит данные для тренингов. Один ряд на тренировку. С колонками для названия места обучения, даты начала и окончания.
Предполагается, что электронная таблица 2 является визуальным представлением данных в электронной таблице 1, которая адаптируется к изменениям исходных данных. Пока он содержит один столбец для каждого дня года и один ряд для каждого учебного места. Таким образом, каждая ячейка представляет определенную дату в определенном месте обучения.
Цель состоит в том, чтобы, если на листе 1 указано, что обучение проводится в месте проведения AZ
с 1 April 2017
по 27 April 2017
, ячейки, представляющие даты с 1 April
по 27 April
в ряду для места обучения AZ
на листе 2, будут помечены посредством условного форматирования. ,
Функция условного форматирования, которую я сейчас использую для строки, представляющей место обучения AZ
, будет:
=IF(OR(AND(Sheet1!$C$5="AZ";Sheet1!$F$5>=B$6;Sheet1!$E$5<=B$6);AND(Sheet1!$C$6="AZ";Sheet1!$F$6>=B$6;Sheet1!$E$6<=B$6); ...... AND(Sheet1!$C$50="AZ";Sheet1!$F$50>=B$6;Sheet1!$E$50<=B$6));TRUE;FALSE)
Таким образом, повторяющаяся часть И проверяет для каждой ячейки, попадает ли дата ее столбца (содержится в строке 6) в дату начала и окончания любого из тренингов на листе 1 и проходит ли это обучение в месте проведения тренинга AZ
. Если это верно для любого из тренингов на листе 1, функция IF является истинной, и ячейка помечается.
Удивительно, но это работает до сих пор. Тем не менее, это очень трудоемкое и не элегантное решение. Так что теперь я ищу способ избавиться от необходимости повторять часть функции 50 раз для каждого из 15 тренировочных объектов.
Обширный поиск в Google предположил, что формулы массива могут быть способом, и что условное форматирование по умолчанию рассматривается как формула массива, поэтому я попытался:
=IF(AND(Sheet1!C3:C54="AZ";AND(B$6>=Sheet1!E3:E54;B$6<=Sheet1!F3:F54));TRUE;FALSE)
а также
=IF(OR(AND(Sheet1!C3:C54="AZ";AND(B$6>=Sheet1!E3:E54;B$6<=Sheet1!F3:F54)));TRUE;FALSE)
Но пока без удачи. Я думаю, что я не совсем понял, как работают формулы массива. Поэтому, если вы заметили какие-либо очевидные ошибки в моей функции, у вас есть мысли о том, что я могу попробовать, или можете предложить какие-либо альтернативные подходы к тому, что я пытаюсь сделать, пожалуйста, дайте мне знать.
В противном случае я могу потерять рассудок, копируя и адаптируя этот кровавый раздел И до бесконечности.