2016-06-08 209 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。