Использование значения ячейки в качестве имени рабочего листа в формуле

У Роя есть формула, которая ссылается на ячейку в другой книге, как = ‘[Timesheets.xlsm] Week01’! L6. Он хотел бы, чтобы формула получала имя рабочего листа (Week01) из другой ячейки, чтобы формула стала более универсальной. Рой задается вопросом, как ему изменить формулу, чтобы она могла использовать любое имя рабочего листа, указанное в ячейке B9.

Самый простой способ справиться с этим – использовать функцию КОСВЕННЫЙ рабочий лист. По сути, он берет адрес ячейки и использует его как «указатель», а затем извлекает значение из этой ячейки. Например, вы можете использовать следующее:

= INDIRECT (L6)

Это приводит к тому, что значение в ячейке L6 извлекается и используется в качестве указателя на то, что вы действительно хотите. Таким образом, если ячейка L6 содержит «A7», функция возвращает значение того, что находится в ячейке A7. Интересно, что если вы вызываете функцию таким образом, вы получите другой результат:

= INDIRECT («L6»)

Вместо этого результатом будет содержимое ячейки L6. использования содержимого ячейки L6 в качестве указателя.

Имея эту информацию, вы можете легко составить адрес, который будет правильно работать с функцией ДВССЫЛКА:

= КОСВЕННО («‘[Timesheets.xlsm]» & K2 & «‘! L6»)

В этой формуле предполагается, что имя нужного рабочего листа хранится в ячейке K2. Если в этой ячейке нет допустимого имени рабочего листа, формула возвращает ошибку #REF.

Одна важная проблема с этим подходом заключается в том, что вы должны убедиться, что рабочая книга (Timesheets. xlsm) открыт. НЕПРЯМОЙ не попадет в закрытую книгу. Если он не открыт, вы получите ошибку #REF вместо желаемого значения.

Если вы хотите сделать формулу еще более универсальной, вы можете вытащить имя книги, имя рабочего листа и ячейка ссылаются на все ячейки на вашем листе следующим образом:

= INDIRECT («‘[» & K1 & «]» & K2 & «‘!» & K3)

В этом случае K1 будет содержать имя книги (Timesheets.xlsm), K2 будет содержать имя рабочего листа («Week01»), а K3 будет содержать желаемую ячейку («L6»).

Источник: frestage.ru

Бытовой вопрос