Excel: динамическая привязка диапазона ячеек к значению поиска строки - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь создать автоматизированный календарь в Excel, в соответствии с предпочтениями моего менеджера , который автоматически рассчитывает контрольные даты для событий отдела.

Для этого я сначала создаю таблицу контрольных дат, основанную на определенных значениях / предпочтениях или исключениях (например: Avoiding Weekends, праздничные дни и т. Д. c). Поскольку мы являемся финансовым отделом, я пытаюсь составить список выходных дней для первых 5 рабочих дней каждого нового месяца. У меня есть следующая формула, которая точно рассчитывает день закрытия для целей тестирования, но когда я пытаюсь изменить его на более поздний динамический диапазон c, показанный ниже, я получаю ошибку формулы.

Работает:

=IF(OR(AND(DAY([@Date])<8,[@[Day of Week]]<>"Sat",[@[Day of Week]]<>"Sun",[@Holiday]<>"Holiday Date"),AND(DAY([@Date])=8,COUNTIF($C$5:$C$12,"Holiday Date")>0)),"Closing Day","")

Работает, чтобы найти номер строки первого дня в новом месяце, для динамического поиска праздников компании:

ROW(INDEX([Holiday], MATCH(DATE(2020,MONTH([@Date]),1), [Date], 0)))

В таком случае диапазон будет

ROW(INDEX([Holiday], MATCH(DATE(2020,MONTH([@Date]),1), [Date], 0)))+7

Не работает:

=IF(OR(AND(DAY([@Date])<8,[@[Day of Week]]<>"Sat",[@[Day of Week]]<>"Sun",[@Holiday]<>"Holiday Date"),AND(DAY([@Date])=8,COUNTIF(CONCATENATE("C",ROW(INDEX([Holiday], MATCH(DATE(2020,MONTH([@Date]),1), [Date], 0))),":C",ROW(INDEX([Holiday], MATCH(DATE(2020,MONTH([@Date]),1), [Date], 0)))+7),"Holiday Date")>0)),"Closing Day","")

Единственная фигура, которую я пытаюсь добавить, - это выделенные курсивом динамики c диапазон ссылки на ячейки, где праздник появится в течение первых 7 дней нового месяца, чтобы увидеть, следует ли считать восьмой день выходным днем. Я получаю сообщение об ошибке, что при добавлении этого диапазона CONCATENATE возникает проблема с формулой. Тем не менее, это работает, когда я использую диапазон stati c в выражении COUNTIF.

Любой совет или альтернатива для определения того, как я могу выполнить sh это, будет наиболее полезным.

Журнал изменений: ** Обновленное изображение таблицы ** ** Посмотрел, чтобы прикрепить образец таблицы, но не смог прикрепить документ **

enter image description here

1 Ответ

0 голосов
/ 21 января 2020

Я не проверял все формулы, но из-за ошибки, связанной с использованием функции сцепления, вы должны использовать INDIRECT, когда хотите преобразовать строку в ссылку (будь то ячейка, диапазон, лист, рабочая книга, формула , et c.)

В этом случае попробуйте следующее:

=IF(OR(AND(DAY([@Date])<8,[@[Day of Week]]<>"Sat",[@[Day of Week]]<>"Sun",[@Holiday]<>"Holiday Date"),AND(DAY([@Date])=8,COUNTIF(INDIRECT(CONCATENATE("C",ROW(INDEX([Holiday], MATCH(DATE(2020,MONTH([@Date]),1), [Date], 0))),":C",ROW(INDEX([Holiday], MATCH(DATE(2020,MONTH([@Date]),1), [Date], 0)))+7)),"Holiday Date")>0)),"Closing Day","")

Дайте мне знать, если это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...