Excel,IF语句,vlookup - 参数太多

时间:2015-01-06 17:37:38

标签: excel if-statement vlookup

请你帮我简化或指导我正确的方向。我的函数假设首先检查LABEL表中是否存在单词中的7个字符,如果没有,则先检查6,然后检查5,等等...这是因为该表可以包含CHARLYLCHARLY。 当我把公式放在下面时,我得到一个错误“参数太多”。我没有意识到IF语句有一个限制......是否有一种简化的替代方法呢?

=if(isna(VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0)),
       if(isna(VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
           if(isna(VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
               if(isna(VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
                   if(isna(VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
                   "MISC",VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
               "MISC",VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
           "MISC",VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
       "MISC",VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
   "MISC",VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0))

1 个答案:

答案 0 :(得分:1)

与其IF(ISNA(...), ...)等效项相比,嵌套IFERROR函数可以大大减少公式。

=IFERROR(VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0),
  IFERROR(VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0),
   IFERROR(VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0),
    IFERROR(VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0),
     IFERROR(VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0),
      "MISC")))))

这是您公式的修复版本。您添加的默认 MISC 参数的次数超过了所需的次数。

=IF(ISNA(VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0)),
       IF(ISNA(VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
           IF(ISNA(VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
               IF(ISNA(VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
                   IF(ISNA(VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
                   "MISC",
                  VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
               VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
           VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
       VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
    VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0))