Вопрос или проблема
У меня есть файл Excel с несколькими листами, имена каждого листа находятся в столбце на первом листе, как это:
| A | B |
| —– | ———- |
| Имя 3-го листа| |
| Имя 4-го листа | |
Могу ли я использовать значение в столбце A для обращения к листу? Например, если я хочу заполнить столбец B ячейкой D из листа, указанного в столбце A?
Насколько я знаю, мне нужно ввести
=’Имя 3-го листа’!D2
Но могу ли я как-то использовать значение из столбца A, поскольку это имя листа, на который я хочу сослаться?
Я пробовал
=’A2′!D2
=’=INDEX(A2,1,1)’!D2
Но Excel просто открывает всплывающее окно открытия файла, и когда я отменяю, оба возвращают “#ССЫЛКА!”
Кто-нибудь знает, как это сделать? Предпочтительно без макросов. Спасибо заранее!
Посмотрите на функцию INDIRECT(), это будет что-то вроде =INDIRECT(A2&”!D2″) (где A2 содержит имя листа).
Лист с формулой:
Лист 3
Ответ или решение
Для выполнения задачи, которую вы описали, можно использовать функцию INDIRECT
, которая позволяет динамически ссылаться на ячейки, основываясь на значениях из других ячеек. Это особенно полезно в вашем случае, когда названия листов хранятся в столбце A, и вы хотите извлечь данные из определенной ячейки на соответствующем листе.
Шаги для реализации:
- Предположим, у вас есть данные в столбце A, где указаны названия листов (например, "3rd sheet name", "4th sheet name" и т.д.).
- Вы хотите получить значение из ячейки D2 на этих листах и поместить его в соответствующий столбец B.
Формула:
Вы можете использовать следующую формулу в ячейке B2:
=INDIRECT("'" & A2 & "'!D2")
Объяснение:
INDIRECT(...)
— это функция, которая принимает текстовую строку и преобразует ее в адрес ячейки или диапазона.&
— оператор конкатенации, который объединяет строки."'
и"'!D2"
— это литералы, которые добавляют одинарные кавычки вокруг имени листа (это необходимо, если имя листа содержит пробелы) и указывают, что мы обращаемся к ячейке D2 на этом листе.
Применение:
- Введите указанную формулу в ячейку B2 на первом листе.
- Перетащите ручку заполнения вниз по столбцу B, чтобы скопировать формулу для остальных строк.
Пример:
Если в A2 у вас написано "3rd sheet name", результат в B2 будет равен значению из D2 на листе "3rd sheet name". Если в A3 у вас "4th sheet name", то в B3 будет значение из D2 на листе "4th sheet name", и так далее.
Таким образом, используя функцию INDIRECT
, вы можете ссылаться на ячейки на разных листах динамически, основываясь на значениях из других ячеек. Это решение не требует использования макросов и может быть легко применено в вашем рабочем файле Excel.