Ошибка ссылок на формулы графика - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь создать график с помощью управления именами. Я придумал следующую формулу, чтобы создать ряд чисел, требуемых мной. Формула:

Sheet2!B4:INDIRECT(ADDRESS(4,Sheet3!AM11,4,,"Sheet2"))

Когда я вводю эту формулу в ячейку, она работает правильно и предоставляет мне необходимые серии, но когда я создаю имя (используя менеджер имен) серии с той же формулой и пытаюсь создать график, Excel выдаст следующее ошибка:

Error Message

1 Ответ

0 голосов
/ 29 августа 2018

Несколько вещей:

вещь первая: вы используете относительные ссылки на ячейки в названной формуле. Это означает, что где бы ни находилась активная ячейка, именованная формула будет пересчитываться на основе текущей ячейки. B4 изменится на любую ячейку в зависимости от текущей ячейки. Используйте абсолютные ссылки, такие как $B$4, если вы хотите привязать определенную ячейку в качестве базовой ссылки.

Второе. Косвенное сложное вложение функций, раскрывающих строку и / или столбец, может быть заменено более эффективной формулой индекса.

Вероятно, это одна вещь, которая вызывает ваши проблемы, потому что результат формулы будет меняться в зависимости от выбранной ячейки.

Редактировать после проверки рабочей книги

Проблема, безусловно, в относительных ссылках на ячейки, и их абсолютное решение определенно решает проблему. Ваша формула была определена с активной ячейкой в ​​B10, и это

=Sheet1!B1:INDIRECT(ADDRESS(1,Sheet1!D10,4))

Но когда активная ячейка находится в A1, например, формула меняется на

=Sheet1!A1048568:INDIRECT(ADDRESS(1,Sheet1!C1,4))

Каждый раз, когда вы нажимаете на ячейку, именованная формула пересчитывается в зависимости от положения текущей ячейки. Вот почему вам нужны абсолютные ссылки. Вы можете исправить свою формулу до

=Sheet1!$B$1:INDIRECT(ADDRESS(1,Sheet1!$D$10,4))

Или вы можете использовать Index вместо Indirect следующим образом:

=Sheet1!$B$1:INDEX(Sheet1!$1:$1,Sheet1!$D$10)

Или вы можете использовать простую функцию смещения

=OFFSET(Sheet1!$B$1,0,0,1,Sheet1!$D$10-1)

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

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

Смещение на одну строку для Open, смещение на две строки для High и т. Д.

=OFFSET(Date,1,0)

На снимке экрана показана формула даты с функцией смещения, и вы можете увидеть формулы, используемые для имен Open, High, Low и AdjClose. На графике показаны серии Open и AdjClose. Обратите внимание, как марширующие муравьи выделяют текущий экстент именованного диапазона. Имя даты всегда будет ссылаться на диапазон, начинающийся с B1, потому что эта ячейка привязана к абсолютной ссылке.

enter image description here

Если у вас есть какие-либо вопросы по этому поводу, пишите.

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