Формула Excel возвращает значение # при названии

Я работаю со следующей таблицей в 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())))))

хотя я думаю, что есть более короткие методы, как я указал выше....

Другие вопросы по тегам