Использование значения ячейки в качестве имени рабочего листа в формуле (Microsoft Excel)
У Роя есть формула, которая ссылается на ячейку в другой книге, как = ‘[http://www.formville.com/C4_free-timesheets.html [Timesheet] s.xlsm] Week01′! L6.
Он хотел бы, чтобы формула получала имя рабочего листа (Week01) из другой ячейки, чтобы формула стала более универсальной. Рой задается вопросом, как ему изменить формулу, чтобы она могла использовать любое имя рабочего листа в ячейке B9.
Самый простой способ справиться с этим — использовать функцию рабочего листа ДВССЫЛ. По сути, он берет адрес ячейки и использует его как «указатель», а затем извлекает значение из этой ячейки. Например, вы можете использовать следующее:
=INDIRECT(L6)
Это приводит к тому, что значение в ячейке L6 выбирается и используется как указатель на то, что вы действительно хотите. Таким образом, если ячейка L6 содержит «A7», тогда функция возвращает значение того, что находится в ячейке A7. Интересно, что если вы вызовете функцию таким образом, вы получите другой результат:
=INDIRECT("L6")
Результатом является содержимое ячейки L6 вместо использования содержимого ячейки L6 в качестве указателя.
Обладая этой информацией, вы можете легко составить адрес, который будет правильно работать с функцией ДВССЫЛ:
=INDIRECT("'[Timesheets.xlsm]" & K2 & "'!L6")
Эта формула предполагает, что имя нужного рабочего листа хранится в ячейке K2. Если допустимое имя рабочего листа отсутствует в этой ячейке, формула возвращает ошибку #REF.
Одна важная проблема с этим подходом заключается в том, что вы должны убедиться, что рабочая книга (Timesheets.xlsm) открыта. НЕПРЯМОЙ не попадет в закрытую книгу. Если он не открыт, вместо нужного значения вы получите ошибку #REF.
Если вы хотите сделать формулу еще более универсальной, вы можете извлечь имя книги, имя рабочего листа и ссылку на ячейку из ячеек на вашем листе следующим образом:
=INDIRECT("'[" & K1 & "]" & K2 & "'!" & K3)
В этом случае K1 будет содержать имя книги (Timesheets.xlsm), K2 будет содержать имя рабочего листа («Week01»), а K3 будет содержать желаемую ячейку («L6»).
ExcelTips — ваш источник экономичного обучения Microsoft Excel.
Этот совет (6069) применим к Microsoft Excel 2007, 2010, 2013, 2016, 2019 и Excel в Office 365.