找出 4 个盒子中哪个盒子最能容纳物品 X 的尺寸
Finding which of the 4 boxes best hold the dimensions of item X
朋友;
所以假设我有 4 个盒子尺寸,它们的尺寸在列表中。我还有一个对象数组,可以用它们自己的尺寸放入盒子中。我只想将一件物品放入一个盒子中,所以我想要最适合该物品的盒子。
在我的 "box that fits" 列下,我想要一个公式或其他东西,可以查看项目尺寸并将它们与盒子尺寸进行比较,找到最适合项目的盒子,然后显示列中的名称A.
因此,如果我有一个 9x9x9 的物品和一个 10x10x10 的盒子,我的 sheet 会选择那个盒子,因为该物品刚好小于盒子的尺寸。
此图表是我如何设置的示例。
谁能帮我解决这个问题?
感谢任何帮助。如果我需要清理任何东西,请告诉我。
我已经调换了项目 4444 的长度和宽度(所以总是 length >= width
)。
对于简单的 "first box to fit in" 你可以使用:
=INDEX(A:A,MATCH(1,(B:B>=F2)*(C:C>=G2)*(D:D>=H2),0))
要获得 "box with the least waste of space",您可以使用:
=INDEX(A:A,MATCH(MIN(IF((B:B>=F2)*(C:C>=G2)*(D:D>=H2),B:B*C:C*D:D-PRODUCT(F2:H2),1E+100)),IF((B:B>=F2)*(C:C>=G2)*(D:D>=H2),B:B*C:C*D:D-PRODUCT(F2:H2),1E+100),0))
This are array formulas and need to be confirmed with CTRL+SHIFT+ENTER!
右边的table只显示未使用的space,未使用
所有公式都是为I2
写的,可以抄下来
编辑
没有排序和没有盒子适合的情况,它变得有点复杂,看起来像这样:
=IFERROR(INDEX(A:A,MATCH(MIN(IF(((B:B>=G2)*(C:C>=H2)+(B:B>=H2)*(C:C>=G2))*(D:D>=I2),B:B*C:C*D:D,1E+100),1E+99),IF(((B:B>=G2)*(C:C>=H2)+(B:B>=H2)*(C:C>=G2))*(D:D>=I2),B:B*C:C*D:D,1E+100),0)),"")
但是如果你可以设置盒子的顺序从最小到最大,那么这样就可以了:
=IFERROR(INDEX(A:A,MATCH(TRUE,((B:B>=G2)*(C:C>=H2)+(B:B>=H2)*(C:C>=G2))*(D:D>=I2)>0,0)),"")
并且如果您将盒子的顺序设置为从最小到最大,同时总是 length >= width
,那么这样做:
=IFERROR(INDEX(A:A,MATCH(1,(B:B>=G2)*(C:C>=H2)*(D:D>=I2),0)),"")
朋友;
所以假设我有 4 个盒子尺寸,它们的尺寸在列表中。我还有一个对象数组,可以用它们自己的尺寸放入盒子中。我只想将一件物品放入一个盒子中,所以我想要最适合该物品的盒子。
在我的 "box that fits" 列下,我想要一个公式或其他东西,可以查看项目尺寸并将它们与盒子尺寸进行比较,找到最适合项目的盒子,然后显示列中的名称A.
因此,如果我有一个 9x9x9 的物品和一个 10x10x10 的盒子,我的 sheet 会选择那个盒子,因为该物品刚好小于盒子的尺寸。
此图表是我如何设置的示例。
谁能帮我解决这个问题?
感谢任何帮助。如果我需要清理任何东西,请告诉我。
我已经调换了项目 4444 的长度和宽度(所以总是 length >= width
)。
对于简单的 "first box to fit in" 你可以使用:
=INDEX(A:A,MATCH(1,(B:B>=F2)*(C:C>=G2)*(D:D>=H2),0))
要获得 "box with the least waste of space",您可以使用:
=INDEX(A:A,MATCH(MIN(IF((B:B>=F2)*(C:C>=G2)*(D:D>=H2),B:B*C:C*D:D-PRODUCT(F2:H2),1E+100)),IF((B:B>=F2)*(C:C>=G2)*(D:D>=H2),B:B*C:C*D:D-PRODUCT(F2:H2),1E+100),0))
This are array formulas and need to be confirmed with CTRL+SHIFT+ENTER!
右边的table只显示未使用的space,未使用
所有公式都是为I2
写的,可以抄下来
编辑
没有排序和没有盒子适合的情况,它变得有点复杂,看起来像这样:
=IFERROR(INDEX(A:A,MATCH(MIN(IF(((B:B>=G2)*(C:C>=H2)+(B:B>=H2)*(C:C>=G2))*(D:D>=I2),B:B*C:C*D:D,1E+100),1E+99),IF(((B:B>=G2)*(C:C>=H2)+(B:B>=H2)*(C:C>=G2))*(D:D>=I2),B:B*C:C*D:D,1E+100),0)),"")
但是如果你可以设置盒子的顺序从最小到最大,那么这样就可以了:
=IFERROR(INDEX(A:A,MATCH(TRUE,((B:B>=G2)*(C:C>=H2)+(B:B>=H2)*(C:C>=G2))*(D:D>=I2)>0,0)),"")
并且如果您将盒子的顺序设置为从最小到最大,同时总是 length >= width
,那么这样做:
=IFERROR(INDEX(A:A,MATCH(1,(B:B>=G2)*(C:C>=H2)*(D:D>=I2),0)),"")