基于数据库的多个从属下拉列表

时间:2014-08-22 16:39:48

标签: excel excel-vba drop-down-menu vba

我有一个组件成本的Excel数据库,如下表所示。

供应商 - 类别 - 组件 - 价格

供应商A类别A组件A $ 5.00

供应商A类别A组件B $ 8.00

供应商A类别B组件A $ 9.00

供应商A类别B组件B $ 11.00

供应商B类别A组件A $ 14.00

供应商B类别C组件A $ 14.00

供应商B类别C组件B $ 17.00

供应商B类别D组件A $ 6.00

供应商C类别C组件C $ 7.00

供应商C类别D组件A $ 4.00

供应商C类别D组件B $ 12.00

我要做的是让用户进来并构建一个由不同组件组成的设备。该用户将使用下拉列表选择供应商,然后使用另一个下拉列表来选择类别,然后最后使用另一个下拉列表来选择组件。 (基于供应商和类别)从这些中,价格也将填充到工作表中。

空表看起来像这样......

供应商------------类型-------组件----成本-------数量-------扩展成本

(下拉) - (下拉) - (下拉) - VLOOKUP

填充价格似乎并不太难,除非它基于多个标准。 VLOOKUP。我的主要问题是1)从具有多个重复的列创建下拉列表,因为它是数据库格式,2)使用多个相关的下拉列表。

谢谢!

1 个答案:

答案 0 :(得分:0)

假设数据列表中没有重复项(例如Vendor A Category A Component A不能出现两次)

Sumproduct或SUMIFS(取决于excel版本)为您提供值

<强> SUMIFS
当供应商等于A2,类别/类型等于B2,并且Componenet等于C2时,Sumifs将返回价格

=SUMIFS(Data!D:D,Data!A:A,A2,Data!B:B,B2,Data!C:C,C2)

<强> SUMPRODUCT
Sumproduct在固定大小范围内效果更好,因为乘以16,384或1,000,000+行需要更长的时间

=SUMPRODUCT(Data!D1:D999,--(Data!A1:A999=A2),--(Data!B1:B999=B2),--(Data!C1:C999=C2))