Индексирующая функция для извлечения значения из закрытой книги, но с использованием значения ячейки для имени листа

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

= ИНДЕКС (‘C: \ FTPDownloads \ Villa Stuff [Таблица занятости, ред. 1d.xlsx], август 2019 г.’! $ AJ $ 46,1)

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

= MID (ЯЧЕЙКА («имя файла»; A1); НАЙТИ («]»; ЯЧЕЙКА («имя файла»; A1)) + 1,255)

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

= ИНДЕКС (‘C: \ FTPDownloads \ Villa Stuff [Таблица занятости, ред. 1d.xlsx] «& Q3 &»‘! $ AJ $ 46,1)

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

См. также:  нечетная ошибка компоновщика при создании программы: "множественное определение `fnames'; src/main.o:(.data.rel.local+0x0): сначала определено здесь'
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Mike Burns

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

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

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

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

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

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

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

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: