2016-06-08 170 views
0

我有一个公式,它返回一个错误,通知IF嵌套太多。为了获得我需要的结果,是否有可能以其他方式做到这一点?Excel嵌套问题

请参见下面的例子:

<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

可以请你教我是否有可能获得该函数去,避免嵌套限制?概念

Proof of Concept

+0

你用[match](https://support.office.com/en-us/article/MATCH-function-e8dffd45-c762-47d6-bf89-533f4a37673a)和-1匹配类型试过运气吗?类似于你想要完成的事情可以在这里找到(https://msdn.microsoft.com/en-us/library/cc750573.aspx)(有点过时了)。 – Thomas

+0

是的,这是可能的! –

+0

错过了你的if语句的第一部分,因为它被埋在了一些不属于excel公式的其他编码中。 –

回答

1

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

=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。