Я пытаюсь создать динамическую форму, которая будет возвращать дату на основе ввода в формате «N-й день недели в месяце, году», например «3-й понедельник января 2018 года».
Вот мои списки:
+-----+--------------+-----------+---------------+-------------------+-----------+-----------------+
| Row | (A) Instance | (B) Instance Value | (C) DayofWeek | (D) DayofWeek Value | (E) Month | (F) Month Value |
+-----+--------------+-----------+---------------+-------------------+-----------+-----------------+
| 1 | 1st | 0 | Monday | 1,0,6,5,4,3,2 | January | 1 |
| 2 | 2nd | 7 | Tuesday | 2,1,0,6,5,4,3 | February | 2 |
| 3 | 3rd | 14 | Wednesday | 3,2,1,0,6,5,4 | March | 3 |
| 4 | 4th | 21 | Thursday | 4,3,2,1,0,6,5 | April | 4 |
| 5 | Last | | Friday | 5,4,3,2,1,0,6 | May | 5 |
| 6 | | | Saturday | 6,5,4,3,2,1,0 | June | 6 |
| 7 | | | Sunday | 0,6,5,4,3,2,1 | July | 7 |
| 8 | | | | | August | 8 |
| 9 | | | | | September | 9 |
| 10 | | | | | October | 10 |
| 11 | | | | | November | 11 |
| 12 | | | | | December | 12 |
+-----+--------------+-----------+---------------+-------------------+-----------+-----------------+
Я использую формулы поиска, чтобы получить значения для любого возвращаемого ответа
+---------+----------------------------------+-----------------------------------+----+--------------------------------+----+-------+
| | Instance | DayofWeek | in | Month | of | Year |
+---------+----------------------------------+-----------------------------------+----+--------------------------------+----+-------+
| Name | 3rd | Monday | | January | | 2018 |
| Value | 14 | 1,0,6,5,4,3,2 | | 1 | | |
| Formula | =VLOOKUP(Instance,B2:C5,2,FALSE) | =VLOOKUP(DayofWeek,D2:E8,2,FALSE) | | =VLOOKUP(Month,F2:G13,2,FALSE) | | =year |
+---------+----------------------------------+-----------------------------------+----+--------------------------------+----+-------+
Теперь я пытаюсь объединить эти значения в формулу
= CONCATENATE ( "= дата (" год "" месяц "1) +", Instance "+ выберите (будний день (Дата (", год "" месяц ", 1 ))) "DAYOFWEEK") ")
Результатом является ячейка, содержащая этот текст, который выглядит как формула, но не запускается.
= дата (2018,1,1) + 14 + выберите (будний день (Дата (2018,1,1))), 1,0,6,5,4,3,2)
Можно ли запустить эту формулу и вернуть значение, вызвав его косвенно из другой ячейки?
Другие вещи, которые я пробовал:
Я сделал это таким образом, потому что я попробовал все другие способы, которыми я могу придумать, чтобы скопировать массив CHOOSE в косвенную формулу, и каждый раз меня срывают.
Я могу заставить эту часть работать:
=DATE(year,Month,1)+Instance
и это для отображения массива
=INDIRECT("DayofWeek")
=N22&Chooseday solves as 43115+choose(weekday(Date(2018,1,1),)),1,0,6,5,4,3,2)
=DATE(year,Month,1)+occurrence+CHOOSE(WEEKDAY(DATE(year,Month,1),1),INDIRECT("G19"))
возвращает # ЗНАЧЕНИЕ!