Я не уверен, что мне нужно опубликовать этот вопрос в определенном месте, но здесь.Microsoft Excel 2007 - Как написать динамический Table_Array для Vlookup
ВНИМАНИЕ: Стена с текстом. Мне нужно полностью объяснить мою ситуацию, поскольку она представляет собой уникальную проблему с небольшим количеством решений.
TL; DR - Крупная таблица электронных таблиц захватывает данные из электронной таблицы «еженедельно» через vlookups. Каждую неделю выпускается новая электронная таблица. Как я могу автоматизировать vlookup для захвата данных из новой электронной таблицы каждую неделю?
Теперь вот длинная версия ...
У меня есть мастер-таблица, которая использует vlookups, указывающее на другую таблицу. Пример кода ниже:
=VLOOKUP(A2,'...OTC\2016\Reports Sent\[SALES BY SKU STORE wk 3 (retail) (2).xls]SKU'!$D$1:$G$65536,4,FALSE)
Великий. Очень просто.
В настоящее время основная электронная таблица указывает на данные для «Недели 3». Следовательно, [ПРОДАЖА МАГАЗИНЫ SKU wk3 (розничная торговля) (2) .xls]. В настоящее время в каталоге файлов, где находится таблица, таблица 3-го дня является самой современной. Каждую неделю новая электронная таблица будет сохранена в одной папке, но называется [SALES BY SKU STORE wk4 (розничная торговля) (2) .xls]. Получать идею сейчас ..?
Я хочу, чтобы главная таблица могла указывать на новые еженедельные данные, каждый раз, когда существует новая электронная таблица. Поэтому можно было бы как-то сделать vlookup Table_Array динамический. Как это сделать?
Дополнительная информация: - Я написал сценарий PowerShell для вывода всех файлов & расширений файлов в CSV-файл. Затем я создал макрос для импорта данных .csv в отдельный лист в главном файле. Я сделал это как потенциальную таблицу поиска. Пример данных ниже, мы будем называть его "Имя файла Список":
[SALES BY SKU STORE wk1 (retail)(2).xls]
[SALES BY SKU STORE wk2 (retail)(2).xls]
[SALES BY SKU STORE wk3 (retail)(2).xls]
Solutions пытался, но не смог, потому что мой первенствует/макро/знание VBA очень ограничено: -
Адрес для печати не изменяется. Единственная часть измененного имени файла - это номер недели. Я рассмотрел идею + 1 на номер недели каждый раз, когда новый файл был добавлен в список имен файлов. Я не знаю, как это сделать.
Я пробовал идею
CONTCATENATE
с Таблица_Array и список названий файлов. Опять же, я не знаю, как это сделать. Просмотр в Интернете заставил меня поверить, чтоINDIRECT
- это путь вперед.Пришло на ум мысль написать
IF
заявления через код VBA. Потенциально hardcoding имена файлов в vlookup, так или иначе. Опять же, я не знаю, как это сделать.
Пожалуйста, может кто-нибудь пролить свет на то, как я это делаю? Если вы можете ответить с идеей, я постараюсь изо всех сил подражать ей. В этот момент я по достоинству оценю все.
спасибо.
Вы можете не только создать дополнительную книгу, которая является последним файл, а затем просто скопировать файл новой недели поверх каждый раз, когда вы получаете данные новой неделе? Таким образом, формула не нуждается в изменении. – Rory
можете ли вы опубликовать код, который вы создали вместе? есть несколько способов сделать это, но, не видя, как вы пытаетесь работать с ним, трудно обеспечить что-то, что будет максимально плавным с вашим текущим кодом. –
@Rory, что на самом деле хорошая идея. Однако автоматизация - это ключ. Чем меньше ручная работа для пользователей, тем лучше. - сказал мой босс. – agentfl