вытягивание нескольких модулей для выполнения общих критериев

В настоящее время у меня есть решение ИНДЕКС + ПОИСКПОЗ, которое я использую для получения критериев соответствия. Вот текущая настройка, с которой я работаю: -

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

Используемая формула - =INDEX(C:R,MATCH(1,(C:C=W3)*(R:R>=Y3)*(D:D>=X3),0),3)

Данные — Текущие запасы

Item Quantity Batch
ABD  10       11223a
ABD  15       24589r
DFG  5        T45678
DFG  67       ghytu8
FGH  10       thnh67
FGH  10       huip78

Sheet 1 - Order form
Item  Quantity  Batch
ABD   8         
DFG   4
DFG   10 
FGH   10

Новое требование: -

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

Данные — Текущие запасы

Item Quantity Batch
ABD  10       11223a
ABD  15       24589r
DFG  5        T45678
DFG  67       ghytu8
FGH  10       thnh67
FGH  10       huip78

Sheet 1 - Order form
Item  Quantity  Batch   Quantity picked from Batch
ABD   18        11223a  10    
                24589r  8 
DFG   6         T45678  5 
                ghytu8  1
FGH   15        thnh67  10
                huip78  5

Можно ли решить эту проблему с помощью какой-либо расширенной функции/запроса excel?

Спасибо.


person user2269061    schedule 27.07.2017    source источник
comment
Я думаю, вам нужно использовать правильную базу данных или написать процедуру, чтобы сделать это в VBA.   -  person Rob Anthony    schedule 27.07.2017
comment
Данные, которые вы видите в 1-й таблице, на самом деле извлечены из базы данных AS400 с помощью драйвера Excel ODBC. Можно ли все же написать подпрограмму VBA, которая могла бы помочь в вышеупомянутом случае?   -  person user2269061    schedule 28.07.2017