我会这样做的方式将涉及帮助列和一个简单的宏,并会做你想做的。
1部分:VBA宏
这个宏将在价格列表中的项目进行排序。
Sub Sorter()
Sheets("Products").select
Range("A:D").Select
ActiveWorkbook.Worksheets("Products").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Products").Sort.SortFields.Add Key:=Range("B:B") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Products").Sort.SortFields.Add Key:=Range("C:C") _
, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Products").Sort
.SetRange Range("A:D")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
第2部分:产品助手栏:您应该每次添加一个新的项目时运行
在产品表,F列中插入以下公式:
列F(单元格F2):=B2&"-"&C2
该公式将用于获取该项目的价格,以防在不同类别下有多个具有相似名称的项目。

3部分:下拉列表助手柱
在下拉列表片,在G列增加一个新的辅助柱,用下列公式计算:
="Products!$C"&MATCH($A2,Products!$B:$B,0)&":$C"&SUM(COUNTIF(Products!$B:$B,$A2),MATCH($A2,Products!$B:$B,0)-1)

数据验证公式应该看第e范围显示在单元格G中使用间接(例如:=INDIRECT($G2)
指向该文件的链接附于here。
您可以隐藏帮助列,但确保在添加新项目时拖动公式。
要获得该项目的价格,使用这个公式:
=SUMIF(Products!$F:$F,'Drop Down'!$A2&"-"&'Drop Down'!$B2,Products!$D:$D)
这将确保,如果2个类别也有类似的项目名称,价格将是预期的项目。
我希望这会有所帮助。