Формула Excel возвращает значение # при названии
Я работаю со следующей таблицей в Excel:
Следующая формула обычно оценивается при вводе непосредственно в ячейку:
=DATE(YEAR(DATEVALUE($A$1)),MONTH(DATEVALUE($A$1)),DAY(INDIRECT(ADDRESS(2,COLUMN()))))
Однако, когда я пытаюсь поместить это в именованную функцию test
и позвонить =test
в другой ячейке он возвращает #VALUE!
ошибка. Лучший ответ, который я придумал после исследования, состоит в том, что названные формулы и indirect
Функция не всегда совместима.
Если кто-то может пролить свет, чтобы помочь объяснить, что я делаю неправильно или почему я не могу поставить indirect
звоните внутри именованного диапазона, я был бы очень признателен!
1 ответ
Да, я не верю, что INDIRECT будет работать с именованным диапазоном - вам не нужна такая сложная формула - попробуйте просто
=(C$2&$A$1)+0
форматировать как дату
Редактировать: в соответствии с комментариями ниже, INDIRECT в порядке, но я не думаю, что COLUMN() нравится в названном диапазоне. Функции ROW и COLUMN иногда ведут себя плохо, потому что они возвращают "массивы", даже когда используются отдельные значения, поэтому вам нужна другая функция, такая как MAX или SUM, для преобразования {2} в 2, например
=DATE(YEAR(DATEVALUE($A$1)),MONTH(DATEVALUE($A$1)),DAY(INDIRECT(ADDRESS(2,MAX(COLUMN())))))
хотя я думаю, что есть более короткие методы, как я указал выше....