Мой ответ сфокусирован на создании ссылки, $A$4:A4
которая работает на всех листах, поскольку это часть ссылки, к которой Excel добавляет нежелательное имя листа. (Я полагаю, у вас нет проблем со ссылкой на таблицу.)
Вы можете решить эту проблему, используя функцию INDIRECT следующим образом:
- На любом листе выберите ячейку
A1
Создайте именованный диапазон со ссылкой на:
=INDIRECT("$A$4"):INDIRECT("R[3]C[0]",FALSE)
По вашему вопросу вторая ячейка в вашей ссылке $A$4:A4
относительна, и ссылка на это имя построена соответственно. Так что, если вы используете это имя в ячейке, A1
он вернет диапазон $A$4:A4
. Если вы ссылаетесь на имя из B1
имени, правильно вернет диапазон $A$4:B4
.
Как это устроено
Первая половина формулы проста. всегдаINDIRECT("$A$4")
будет ссылаться на ячейку на текущем листе.A4
Вторая половина немного сложнее. INDIRECT("R[3]C[0]",FALSE)
ссылается на «3 строки вниз в том же столбце, относительно текущей ячейки». Если вы в клетке, A1
это клетка A4
. FALSE аргумент указует непрямую функцию, чтобы интерпретировать текст в качестве ссылки R1C1-стиль вместо ссылки по умолчанию A1 стиля.
Завершенная формула
Ваша окончательная ссылка на имя будет выглядеть примерно так:
=COUNTIF(INDIRECT("$A$4"):INDIRECT("R[3]C[0]",FALSE), Tbl_InventoryMain[Barcode])