Ошибка функции Excel OFFSET при использовании TREND в ссылке

Рассмотрим лист Excel со следующими значениями:

   A   B
 --------
1| 1   5
2| 2   8
3| 3  11

Ввод формулы массива =TREND(B1:B3,A1:A3,A1:A3) в ячейки C1:C3 возвращает {5;8;11}, как и ожидалось. Ввод =OFFSET(C1:C3,1,0) возвращает {8;11;0}, как и ожидалось.

Однако, если я попытаюсь ввести =ROWS(OFFSET(TREND(B1:B3,A1:A3,A1:A3),1,0)), я получу сообщение "Формула, которую вы набрали, содержит ошибку". Я ничего не могу сделать, чтобы заставить его принять формулу.

Затем я создал именованные диапазоны «TrendRange» и «TrendFormula» с формулами =Sheet1!$C$1:$C$3 и =TREND(Sheet1!$B$1:$B$3,Sheet1!$A$1:$A$3,Sheet1!$A$1:$A$3) соответственно.

Опять же, =OFFSET(TrendRange,1,0) дает правильный результат, а =OFFSET(TrendFormula,1,0) нет (результат #VALUE!).

Существует простой тест, который, кажется, всегда определяет, когда у OFFSET возникнет эта проблема. Если =CELL("address", xxx) или =AREAS(xxx) приводят к #VALUE!, то раздел xxx нельзя использовать в OFFSET.

Есть ли способ обойти это? Я пробовал использовать ЛИНЕЙН и НАКЛОН/ОТРЕЗОК вместо ТРЕНДА, но получаю тот же результат.


person dnlbrky    schedule 07.12.2012    source источник


Ответы (1)


ДЛЯ СМЕЩЕНИЯ требуется ссылка (ячейка или диапазон в качестве первого аргумента), он не принимает массив, поэтому формула типа

=TREND(B1:B3,A1:A3,A1:A3)

всегда возвращает массив, вы не можете использовать его в качестве первого аргумента OFFSET. Это связано с вашим предыдущим вопросом?

person barry houdini    schedule 07.12.2012
comment
Хорошо, еще раз спасибо, Барри. Я надеялся найти способ обойти это ограничение, но, видимо, его нет (кроме VBA). Да, это связано с другим моим вопросом. - person dnlbrky; 10.12.2012