1

=INDIRECT("'"&$A4&"'!E4")

Предполагается использовать значение из ячейки E4 листа с именем, найденным в A4. На самом деле это работает. Но когда я перетаскиваю эту формулу через несколько столбцов / строк, A4 обновляется в разные столбцы, а E4 - нет ... Я думаю, потому что это в строке.

Как я могу сделать эту работу, все, что я пытаюсь, дает мне!REF?

2 ответа2

4

Попробуйте использовать функцию CELL как это

=INDIRECT("'"&$A4&"'!"&CELL("address",E4))

Это преобразует E4 в текст для использования в функции INDIRECT, но все равно будет обновляться при перетаскивании по / вниз

2

Ну, вы не очень четко сформулировали свой комментарий, поэтому я думаю, будет проще, если я дам что-то, а вы настроите это для своих нужд.

Я предполагаю, что у вас есть формула =INDIRECT("'"&$A4&"'!E4") в листе Target и cell A1 .

=INDIRECT("'"&$A4&"'!E4")

Вы можете изменить это на:

=INDIRECT("'"&$A4&"'!"&CHAR(96+COLUMN()+4)&ROW()+3)

COLUMN() возвращает столбец, в котором находится формула. Здесь, поскольку формула находится в ячейке A1, COLUMN() возвращает 1.

ROW() действует так же, но с количеством строк, и возвращает здесь 1.

CHAR(96+COLUMN()+4) вернет CHAR(96+1+4) в данном случае это буква E

ROW()+3 вернет 1+3 что равно 4 .

Объединяя все, вы получите Е4.

Когда вы копируете / вставляете эту формулу в B1, вы получите:

=INDIRECT("'"&$B4&"'!"&CHAR(96+COLUMN()+4)&ROW()+3)

COLUMN() теперь возвращает 2, потому что он находится во втором столбце, а CHAR() возвращает F

Поскольку строка одинакова, вы получаете 4 , так что указанная ячейка становится F4 .

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