Как я могу использовать VLOOKUP для заполнения расписания почасового календаря? - PullRequest
2 голосов
/ 25 сентября 2019

Вместо того, чтобы печатать функцию, с которой я имею дело, поскольку она довольно длинная и произвольная без столбцов, на которые она ссылается, я предоставил упрощенный макет моей электронной таблицы здесь .Обязательно сделайте копию и не редактируйте оригинал напрямую.Если мне нужно удалить эту ссылку, я сделаю это.

По сути, я пытаюсь взять расписание, которое уже была создана другой стороной, и отобразить его в виде почасового календаря в соответствии с VLOOKUP ключ поиска.В моем примере, приведенном выше, я создал расписание занятий на вкладке Основное расписание , которое включает в себя номер (а), предмет, учителя (ей), время начала и окончания, а также дату.У меня есть комнаты, запланированные на текущий день, а также на день раньше, так как некоторые из окон конца предыдущего дня выходят за полночь, и поэтому я хотел бы включить их в представление календаря на текущий день, если они сталкиваются сраннее утро.На этой же вкладке у меня есть формула VLOOKUP с номером комнаты в качестве ключа поиска.Причина, по которой формула такая длинная, заключается в том, что мне приходится учитывать наличие нескольких комнат, разделенных запятой "," или косой чертой "/", и она была взята из решения, предложенного для другого моего вопроса о переполнении стека.Он выполняет свою работу, но если есть метод, который не настолько запутан, я весь слух.

Я хотел бы перевести данные на вкладке Master Schedule впросмотр календаря на вкладке Расписание .Я думал, что у меня все получилось логически с несколькими IF утверждениями, но я сильно боролся.Я понимаю, что открытые вопросы, подобные этим, не всегда ценятся на этой платформе, но я в растерянности от того, как выполнить то, к чему я стремлюсь, особенно без того, чтобы формулы заполняли календарь в любое время, когда бы то ни было,обновление основного графика, так что любая помощь или толчок в правильном направлении очень ценится.Я с удовольствием уточню что-либо, если таблица, на которую я ссылался, или моя цель не ясна.

1 Ответ

2 голосов
/ 27 сентября 2019

вставьте в ячейку C2 и перетащите вниз, а затем вправо:

=IFERROR(FILTER('Master Schedule'!$F$2:$F&CHAR(10)&'Master Schedule'!$D$2:$D, 
 REGEXMATCH('Master Schedule'!$E$2:$E, "^"&$A2&"$"), 
 HOUR('Master Schedule'!$B$2:$B)<=HOUR(INDEX(SPLIT(C$1, "-"), 1, 1)), 
 HOUR('Master Schedule'!$C$2:$C)>=HOUR(INDEX(SPLIT(C$1, "-"), 1, 1)),
 'Master Schedule'!$A$2:$A=TODAY()))

0


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

...