У меня есть рабочая тетрадь с несколькими листами, и в некоторых таблицах я разработал запрос / ссылку на строку в одной из таблиц.
Я понял, что когда я добавляю строку к указанному рабочему листу, запрос / ссылка не понимает, что новая строка была добавлена. Я не понимаю, почему, но как бы то ни было, я нашел несколько ссылок на функцию INDIRECT, которая, кажется, решает эту проблему. Является ли?
Я попытался выяснить, как ссылаться на отдельный лист в формуле, но не могу заставить его работать. Текущая ссылка: ='B&A'!P41
где B&A
это имя листа и P41
ссылка на ячейку.
Итак, вот два вопроса:
- НЕПРАВИЛЬНО решит мою проблему, когда я добавлю новую строку в
B&A
? - Если да, то каков правильный синтаксис для функции INDIRECT?
worksheet-function
Bill A
источник
источник
Ответы:
Да,
INDIRECT
будет применять его всегда, глядя на одну и ту же ячейку, независимо от того, будут ли добавлены / удалены другие ячейки.INDIRECT
принимает строку, которую затем использует в качестве адреса ячейки. Таким образом, ваша текущая формула:станет
Используя это, он должен ссылаться на ячейку статически и обновляться только в том случае, если на ячейку ссылаются изменения.
источник
Если вам нужно добавить НОВЫЕ строки / ячейки / столбцы в ссылочный лист, вам нужно создать способ, чтобы ссылочные формулы могли это распознать.
Я бы создал ячейку в ссылочном листе для ссылки на таблицу / массив в виде текста
- например,
$A1:$B200
в названной ячейке, напримерtable_ref
-который затем может быть взят и разыменован (из других листов) с дополнительным INDIRECT ()
INDIRECT( INDIRECT(table_ref) )
При создании содержания
table_ref
вам, возможно, придется использоватьCELLS()
,COUNTIF()
,SUBTOTAL()
,OFFSET()
,ROWS()
или аналогичные функции, и объединить результаты нескольких из них - я считаю, что есть еще несколько похожих функций, которые я не могу вспомнить сейчас.источник