Использование значения ячейки в качестве имени листа для обращения к значению ячейки на этом листе

Вопрос или проблема

У меня есть файл 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

Лист3

Ответ или решение

Для выполнения задачи, которую вы описали, можно использовать функцию INDIRECT, которая позволяет динамически ссылаться на ячейки, основываясь на значениях из других ячеек. Это особенно полезно в вашем случае, когда названия листов хранятся в столбце A, и вы хотите извлечь данные из определенной ячейки на соответствующем листе.

Шаги для реализации:

  1. Предположим, у вас есть данные в столбце A, где указаны названия листов (например, "3rd sheet name", "4th sheet name" и т.д.).
  2. Вы хотите получить значение из ячейки D2 на этих листах и поместить его в соответствующий столбец B.

Формула:

Вы можете использовать следующую формулу в ячейке B2:

=INDIRECT("'" & A2 & "'!D2")

Объяснение:

  • INDIRECT(...) — это функция, которая принимает текстовую строку и преобразует ее в адрес ячейки или диапазона.
  • & — оператор конкатенации, который объединяет строки.
  • "' и "'!D2" — это литералы, которые добавляют одинарные кавычки вокруг имени листа (это необходимо, если имя листа содержит пробелы) и указывают, что мы обращаемся к ячейке D2 на этом листе.

Применение:

  1. Введите указанную формулу в ячейку B2 на первом листе.
  2. Перетащите ручку заполнения вниз по столбцу B, чтобы скопировать формулу для остальных строк.

Пример:

Если в A2 у вас написано "3rd sheet name", результат в B2 будет равен значению из D2 на листе "3rd sheet name". Если в A3 у вас "4th sheet name", то в B3 будет значение из D2 на листе "4th sheet name", и так далее.

Таким образом, используя функцию INDIRECT, вы можете ссылаться на ячейки на разных листах динамически, основываясь на значениях из других ячеек. Это решение не требует использования макросов и может быть легко применено в вашем рабочем файле Excel.

Оцените материал
Добавить комментарий

Капча загружается...