Использование Excel Indirect с именами листов

1

У меня есть рабочая тетрадь с несколькими листами, и в некоторых таблицах я разработал запрос / ссылку на строку в одной из таблиц.

Я понял, что когда я добавляю строку к указанному рабочему листу, запрос / ссылка не понимает, что новая строка была добавлена. Я не понимаю, почему, но как бы то ни было, я нашел несколько ссылок на функцию INDIRECT, которая, кажется, решает эту проблему. Является ли?

Я попытался выяснить, как ссылаться на отдельный лист в формуле, но не могу заставить его работать. Текущая ссылка: ='B&A'!P41 где B&A это имя листа и P41 ссылка на ячейку.

Итак, вот два вопроса:

  1. НЕПРАВИЛЬНО решит мою проблему, когда я добавлю новую строку в B&A?
  2. Если да, то каков правильный синтаксис для функции INDIRECT?
Bill A
источник
Если вы считаете, что ответ ниже подходит, тогда, пожалуйста, нажмите на серую галочку рядом с ним.
Hannu

Ответы:

0

Да, INDIRECT будет применять его всегда, глядя на одну и ту же ячейку, независимо от того, будут ли добавлены / удалены другие ячейки.

INDIRECT принимает строку, которую затем использует в качестве адреса ячейки. Таким образом, ваша текущая формула:

='B&A'!P41

станет

=INDIRECT("'B&A'!P41")

Используя это, он должен ссылаться на ячейку статически и обновляться только в том случае, если на ячейку ссылаются изменения.

Jonno
источник
Что ж, похоже, это сработало для строки, но я надеялся скопировать эту формулу во все строки. Это не сработало. Как получилось, и есть ли способ сделать это?
Bill A
0

Если вам нужно добавить НОВЫЕ строки / ячейки / столбцы в ссылочный лист, вам нужно создать способ, чтобы ссылочные формулы могли это распознать.

Я бы создал ячейку в ссылочном листе для ссылки на таблицу / массив в виде текста
- например, $A1:$B200 в названной ячейке, например table_ref -
который затем может быть взят и разыменован (из других листов) с дополнительным INDIRECT () INDIRECT( INDIRECT(table_ref) )

При создании содержания table_ref вам, возможно, придется использовать CELLS(), COUNTIF(), SUBTOTAL(), OFFSET(), ROWS() или аналогичные функции, и объединить результаты нескольких из них - я считаю, что есть еще несколько похожих функций, которые я не могу вспомнить сейчас.

Hannu
источник