Excel嵌套问题

时间:2016-06-08 10:51:52

标签: excel nested

我有一个公式,它返回一个错误,通知IF嵌套太多了。为了获得我需要的结果,是否可以通过其他方式实现?

请参阅以下示例:

<table>
  
<tr><td>A</td><td>B</td><td>C</td><td>D</td><td>E</td><td>F</td><td>G</td><td>H</td><td>I</td><td>J</td></tr>      
<tr><td>SKU</td><td>Description</td><td>Height</td><td>Depth</td><td>Width</td><td>Box</td><td>Depth</td><td>Height</td><td>Width</td><td>Exceed by 5%?</td></tr>
  <tr><td>30200616</td><td>DORMA MIRRORED WALL CLOCK 44*44 CHAMP</td><td>460</td><td>70</td><td>450</td><td>"=IF(G2+H2+I2>=50%*1265,
IF(AND(G2<=BOXES!$B$2, H2<=BOXES!$C$2, I2<=BOXES!$D$2), BOXES!$A$2,
IF(AND(G2<=BOXES!$B$3, H2<=BOXES!$C$3, I2<=BOXES!$D$3), BOXES!$A$3,
IF(AND(G2<=BOXES!$B$4, H2<=BOXES!$C$4, I2<=BOXES!$D$4), BOXES!$A$4,
IF(AND(G2<=BOXES!$B$5, H2<=BOXES!$C$5, I2<=BOXES!$D$5), BOXES!$A$5,
IF(AND(G2<=BOXES!$B$6, H2<=BOXES!$C$6, I2<=BOXES!$D$6), BOXES!$A$6,  BOXES!$A$7))))),BOXES!$A$8)"</td><td>"=MIN(C2:E2)"</td><td>"=MAX(C2:E2)"</td><td>"=SMALL(C2:E2, 2)"</td><td>"=IF(G2+H2+I2>=50%*1265,
IF(AND(G2<=BOXES!$B$2, H2<=BOXES!$C$2, I2<=BOXES!$D$2), BOXES!$A$2,
IF(AND(G2<=BOXES!$B$7, H2<=BOXES!$C$7, I2<=BOXES!$D$7), BOXES!$A$7,
IF(AND(G2<=BOXES!$B$3, H2<=BOXES!$C$3, I2<=BOXES!$D$3), BOXES!$A$3,
IF(AND(G2<=BOXES!$B$8, H2<=BOXES!$C$8, I2<=BOXES!$D$8), BOXES!$A$8,
IF(AND(G2<=BOXES!$B$4, H2<=BOXES!$C$4, I2<=BOXES!$D$4), BOXES!$A$4,
IF(AND(G2<=BOXES!$B$9, H2<=BOXES!$C$9, I2<=BOXES!$D$9), BOXES!$A$9,
IF(AND(G2<=BOXES!$B$5, H2<=BOXES!$C$5, I2<=BOXES!$D$5), BOXES!$A$5,
IF(AND(G2<=BOXES!$B$10, H2<=BOXES!$C$10, I2<=BOXES!$D$10), BOXES!$A$10,
IF(AND(G2<=BOXES!$B$6, H2<=BOXES!$C$6, I2<=BOXES!$D$6), BOXES!$A$6,
IF(AND(G2<=BOXES!$B$11, H2<=BOXES!$C$11, I2<=BOXES!$D$11), BOXES!$A$11,
  BOXES!$A$12)))))))))),BOXES!$A$13)"</td></tr>
  </table>

如果项目略大于框大小,则J列应提供信息。如果是,它应该在这里返回信息。

下面的Bin Size选项卡。

enter image description here

你可以告诉我是否有可能让这个功能继续下去,避免嵌套限制?

1 个答案:

答案 0 :(得分:1)

概念证明

Proof of Concept

我相信你所拥有的表格对你的答案至关重要。您需要对表格进行排序以满足您的需求,因为以下答案将返回满足所有三个类别的表格的第一行。因此,您可能希望按高度或宽度对表格进行排序。

=IF(G2+H2+I2>=1265/2,IFERROR(INDEX($O$3:$O$12,AGGREGATE(15,6,ROW($O$3:$O$12)/(($P$3:$P$12>=G2)*($Q$3:$Q$12>=H2)*($R$3:$R$12>=I2)),1)-ROW($O$3)+1),"BIG KITE"),"No Packaging - Too small")

该公式假设您的表位于O2到R14的范围内,其中O2是标题行。

第一个if是必需的,因为您的TOO SMALL检查不符合表格的逻辑。因此,我们进行特殊情况检查,并确定我们是否要进入表格或先说它太小。如果在表上找不到某些内容,则会返回错误。因此,使用IFERROR我们返回“BIG KITE”的结果。您可以在报价内自定义。然后聚合函数尝试查找满足您的大小要求的第一行,这就是为什么您的表需要按照图片中显示的方式进行排序的原因。如果你不这样做,那么适合稍微超过方框1的项目将改为选择方框2。