У меня есть несколько листов, каждый из которых содержит серийные коды в столбце AI (начиная с ячейки AI14 и заканчивая AI400).

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

До сих пор я пытался использовать формулу INDIRECT: = INDIRECT("'" & $ B $ 2 & "'!AI14 ") где B2 содержит имя листа для формулы, к которой следует обратиться. Как вы, возможно, поняли, перетаскивание не работает, поскольку AI14 не изменяется, и, следовательно, я неоднократно получаю значение в ячейке AI14.

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

Пожалуйста, помогите, если это возможно. Спасибо за ваше время!

1 ответ1

1

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

=INDIRECT("'"&$B$2&"'!AI"&Row())
например, если формула находится в строке 14, и вы хотите прочитать AI14, нет необходимости что-либо менять, и когда вы копируете ее, она будет увеличиваться на 14, 15, ...
Но если формула находится в строке 10 и вам нужно AI14, измените ее на:
=INDIRECT("'"&$B$2&"'!AI"&Row()+4)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .