Какие есть варианты кода VBA, чтобы сгруппировать данные во временные интервалы, скопировать их на другой лист и выполнить цикл для нескольких частей (критерий) - PullRequest
1 голос
/ 29 марта 2011

У меня есть два файла: Файл № 1 содержит информацию о клиенте. Для меня важны только три столбца:
Часть# Кол-во спроса Дата спроса Файл имеет тысячи строк.

Файл № 2 - это мой собственный файл, в котором больше настроек MRP: столбцы помечены датами (еженедельно) Для каждой части: есть следующие строки: требовать Входящий инвентарь Чистый инвентарь

Моя общая идея заключалась в том, что я мог каким-то образом отфильтровать оба файла по части #, затем получить код «суммировать» общую потребность за неделю и скопировать его из файла клиента в мой файл в соответствующей строке спроса. Затем выполните цикл для всех деталей # s.

Номера деталей постоянно добавляются / удаляются в моей электронной таблице (по мере развития новых проектов и отказа от старых), поэтому было бы идеально, если бы код не нуждался в обслуживании, поскольку мой файл обновляется новыми частями.

1 Ответ

1 голос
/ 29 марта 2011

Кажется, что вы можете использовать формулу SUMPRODUCT, чтобы ввести эти числа без кода.В этом примере используются две таблицы в одной и той же книге, поэтому вам придется немного подстроиться под разные книги.В Sheet1 у вас есть три диапазона, которые я назвал rngPartNum, rngDemandDate и rngDemandQty.Я использовал имена динамических диапазонов, которые расширяются вместе с данными, но вы можете использовать ссылки на ячейки, которые охватывают достаточное количество строк.Данные выглядят так:

PartNum Demand Qty  DemandDate
1           18          3/28/2011
1           6           3/30/2011
1           6           4/2/2011
2           18          3/28/2011
2           6           3/30/2011
2           6           4/2/2011
2           16          3/28/2011
3           3           3/30/2011
3           15          4/2/2011
3           9           3/28/2011
3           18          3/30/2011

Sheet2 имеет дату конца недели и номер детали в каждой строке.

Part    Week       Demand
1       4/1/2011    24
1       4/8/2011    6
1       4/15/2011   0
2       4/1/2011    40
2       4/8/2011    6
2       4/15/2011   0
3       4/1/2011    30
3       4/8/2011    15
3       4/15/2011   0

Формула в столбце спроса - это

=SUMPRODUCT((rngPartNum=A2)*(rngDemandDate<=B2)*(rngDemandDate>B2-7)*(rngDemandQty))

Это суммирует все в rngDemandQty, где rngPartNum соответствует A2, а rngDemandDate меньше или равно B2, а rngDemandDate больше, чем за неделю до B2.Пока у вас есть каждый номер детали и достаточно недель на вашем Листе 2, общее количество должно соответствовать Листу 1.

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