找出4个盒子中哪个最符合项目X的尺寸

时间:2017-08-09 18:58:16

标签: excel vba excel-vba ms-office

友;

因此,假设我有4个盒子大小,其尺寸在列表中。我还有一个对象数组,以适合自己的尺寸框。我只想在一个盒子里放一个项目,所以我想要最适合该项目的盒子。

在我的“适合的方框”列下,我想要一个公式或其他可以向下看项目尺寸并将它们与框尺寸进行比较并找到最适合项目的框,然后显示A列中的名称。

因此,如果我有一个9x9x9的项目和一个10x10x10的框,我的工作表将选择该框,因为该项目只是小于框大小。

此图表是我如何设置事物的一个示例。

任何人都可以帮我解决这个问题吗?

我感谢任何帮助。如果我需要清除任何内容,请告诉我。

1 个答案:

答案 0 :(得分:2)

我已经切换了项目4444的长度和宽度(所以总是length >= width)。

一个简单的第一个框以适应"你可以使用:

=INDEX(A$2:A$5,MATCH(1,(B$2:B$5>=F2)*(C$2:C$5>=G2)*(D$2:D$5>=H2),0))

获得最少浪费空间的"框#34;你可以使用:

=INDEX(A$2:A$5,MATCH(MIN(IF((B$2:B$5>=F2)*(C$2:C$5>=G2)*(D$2:D$5>=H2),B$2:B$5*C$2:C$5*D$2:D$5-PRODUCT(F2:H2),1E+100)),IF((B$2:B$5>=F2)*(C$2:C$5>=G2)*(D$2:D$5>=H2),B$2:B$5*C$2:C$5*D$2:D$5-PRODUCT(F2:H2),1E+100),0))
  

这是数组公式,需要用 CTRL + SHIFT + ENTER 确认!

enter image description here

右边的表格仅用于显示未使用的空间而未使用
所有公式都是为I2编写的,可以向下复制

修改

没有排序和没有框适合的情况,它有点复杂,看起来像这样:

=IFERROR(INDEX(A$2:A$5,MATCH(MIN(IF(((B$2:B$5>=G2)*(C$2:C$5>=H2)+(B$2:B$5>=H2)*(C$2:C$5>=G2))*(D$2:D$5>=I2),B$2:B$5*C$2:C$5*D$2:D$5,1E+100),1E+99),IF(((B$2:B$5>=G2)*(C$2:C$5>=H2)+(B$2:B$5>=H2)*(C$2:C$5>=G2))*(D$2:D$5>=I2),B$2:B$5*C$2:C$5*D$2:D$5,1E+100),0)),"")

但是如果您可以将框的顺序从最小的体积设置为最大,那么这样做:

=IFERROR(INDEX(A$2:A$5,MATCH(TRUE,((B$2:B$5>=G2)*(C$2:C$5>=H2)+(B$2:B$5>=H2)*(C$2:C$5>=G2))*(D$2:D$5>=I2)>0,0)),"")

如果你将盒子的顺序从最小的体积设置为最大但同时总是length >= width,那么这样做:

=IFERROR(INDEX(A$2:A$5,MATCH(1,(B$2:B$5>=G2)*(C$2:C$5>=H2)*(D$2:D$5>=I2),0)),"")