Индексная функция для извлечения значения из закрытой книги, но использование значения ячейки для имени листа - PullRequest
0 голосов
/ 09 октября 2019

У меня есть 2 рабочие книги, и в каждой книге на каждом листе указаны месяцы года. Исходная книга и целевая книга имеют одинаковые названия листов, например. Авг 2019, сентябрь 2019 ..... Я создал следующую формулу в целевой книге, ячейка B9, чтобы извлечь значение из исходной рабочей книги, ячейка AJ46:

= INDEX ('C: \ FTPDownloads\ Villa Stuff [Таблица занятости Rev 1d.xlsx] Авг. 2019 '! $ AJ $ 46,1)

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

= MID (CELL ("имя файла", A1), FIND ("]", CELL ("имя файла", A1)) + 1,255)

Это загружает ячейкуQ3 в целевой книге с текущим активным листом. Таким образом, значение ячейки Q3 - август 2019. В целевой книге содержится 20 копий формулы INDEX, и единственное, что изменяется, это исходная ячейка в конце, которая в приведенной выше формуле - AJ46. Чтобы предотвратить постоянное изменение формулы INDEX при расширении листов до будущих месяцев, я хотел бы использовать значение в ячейке Q3 вместо ввода фактического имени листа. Я пытался:

= INDEX ('C: \ FTPDownloads \ Villa Stuff [Таблица занятости Rev 1d.xlsx] "& Q3 &"'! $ AJ $ 46,1)

Но он производитошибка. Я использую Excel 2007.

1 Ответ

0 голосов
/ 10 октября 2019

Во-первых, если вы хотите вернуть только определенную ячейку, скажем AJ46, почему бы вам просто не ссылаться на адрес ячейки напрямую, а не использовать функцию INDEX ? Я уверен, что следующее также вернет желаемое значение независимо от того, является ли другая рабочая книга открытой или нет.

='C:\FTPDownloads\Villa Stuff[Occupancy Chart Rev 1d.xlsx]Aug 2019'!$AJ$46

Во-вторых, по этой теме было достаточно обсуждений в Интернете и даже вэто сообщество, как в этом сообщении . Простой вывод таков:

нет способа создать динамическое имя рабочей книги / рабочего листа / диапазона / ячейки с помощью формулы Excel и вернуть требуемое значение из закрытого рабочая тетрадь.

В-третьих, это можно сделать с помощью VBA. Если это вариант для вас, вы можете добавить #vba к своим тегам, чтобы другие участники могли помочь вам, так как #vba это не мой опыт. Кто-то в посте, о котором я упоминал ранее, предоставил код vba, который работает для прямой ссылки на ячейку, но не включает INDEX . Если это вариант для вас, вы можете попробовать.

В-четвертых, для вашей информации это также можно сделать с помощью PowerQuery, но это доступно только в Excel 2010 и более поздних версиях. Кроме того, PowerQuery лучше всего работал с большим набором необработанных данных, а не со структурированным отчетом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...