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

Creating a two way lookup Price Matrix in Excel using VBA (Index/Match/SumProduct)

我正在尝试为产品创建定价矩阵,但事实证明使用 Index/Match 或 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))

示例Table:

使用:

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

您可以像这样使用 =AGGREGATE()

=INDEX(A:E,AGGREGATE(15,3,(($A:$A>=N3)/($A:$A>=N3))*ROW($A:$A),1),AGGREGATE(15,3,(($B:$J>=M3)/($B:$J>=M3))*COLUMN($B:$J),1))

你可以像上面两个人说的那样直接使用公式... 我在这里:

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