使用VBA在Excel中创建双向查询价格矩阵(Index / Match / SumProduct)

时间:2019-02-26 21:41:29

标签: excel vba indexing match sumproduct

我正在尝试为产品创建价格矩阵,但是使用索引/匹配或SumProduct公式对我来说是一场噩梦,我想知道VBA是否会更容易?

基本上,如果产品的宽度或高度在两个数字之间,则我需要引用的价格用于下一个定价范围。 (注意:在公式中四舍五入或使用Ceiling函数对我也不起作用)

我尝试使用的代码示例为:

=SUMPRODUCT(--(HeightRange=CEILING(Height,1000))*--(WidthRange=CEILING(Width,10))*PriceRange)

=INDEX(PriceRange,MATCH(MIN(ABS(HeightRange-Height)),ABS(HeightRange-Height),-1),MATCH(MIN(ABS(WidthRange-Width)),ABS(WidthRange-Width),-1))

示例表: enter image description here

3 个答案:

答案 0 :(得分:1)

使用:

=INDEX(B:J,MATCH(N3,A:A),MATCH(M3,B$3:J$3))

答案 1 :(得分:0)

您可以像这样使用def actually_do_something() return "I did something" def do_something(incoming_data): if incoming_data['flag']: return actually_do_something() return "I did something else"

=AGGREGATE()

答案 2 :(得分:0)

您可以直接使用公式,就像上述两个人一样... 我的在这里:

=INDEX($A:$J,MATCH($N3,$A:$A,0),MATCH($M3,B$3:J$3,0))