У меня есть лист отслеживания, который я хотел бы обновить, используя внешнюю базу данных. Лист отслеживания - это просто таблица в Excel с несколькими столбцами. Некоторые столбцы - это ручные записи, заметки и прочее. Некоторые столбцы связаны со значениями из нашей базы данных на основе значения индекса для каждой строки.
Мне нужно создать строку поиска для всех уникальных значений индекса в моей таблице, выполнить поиск в моей базе данных, экспортировать эти результаты в файл csv
, поместите его в отдельный лист и затем свяжите его с моей таблицей отслеживания. Я бы не хотел делать этот дамп данных каждые несколько дней и просто извлекать нужные мне данные из базы данных.
Столбцы моей таблицы выглядят примерно так, как показано ниже, и имеют несколько сотен строк. Я отслеживаю проекты и веду некоторые заметки, чтобы делать элементы или просто общие ссылки.
Index | Manual Entry 1 | Manual Entry 2 | Database Param 1 (DB1) | Database Param 2(DB2)
Моя таблица данных выглядит следующим образом.
Index | DB1 | DB2
Я могу загрузить свою базу данных в Excel как модель данных уже. В зависимости от того, что я извлекаю, у некоторых из них есть несколько миллионов строк, поэтому я не могу просто загрузить их непосредственно в таблицу. Я не могу понять, как запросить модель данных для определенного параметра c на основе значения индекса. Сегодня я использовал макрос для извлечения значений DB1 и DB2 из моих данных, которые я экспортировал из базы данных.
Все, что я искал в моделях данных и превзошло их результаты - сводные таблицы или отчеты о числовых данных c , Я нашел функции cubemember
и cubevalue
, но не смог получить выражения, которые бы давали мне необработанное значение на основе индекса. Это всегда был просто подсчет значений.
Мой код sudo сегодня выглядит следующим образом.
'loop through rows of indexes
If DataIndex = TrackingIndex then
'loop through columns of DB1,DB2,DB3...
if DataDB# = TrackingDB# Then
TrackingValue = DataValue
end if
next
end if
next
Мне просто нужно знать, какая формула может index(match())
в модели базы данных? или какая функция VBA позволяет мне загружать модель данных в массив, который я могу l oop через?
Или есть лучший способ выполнить sh все это вместе?