2015-01-06 9 views
0

Не могли бы вы помочь мне упростить или направлять меня в правильном направлении. Моя функция предполагает сначала проверить, существуют ли 7 символов в словах в таблице LABEL, если нет, тогда сначала проверьте 6, затем 5 и т. Д. Это связано с тем, что таблица может содержать CHARLYL и CHARLY. Когда я ставлю ниже формулу, я получаю сообщение об ошибке «Слишком много параметров». Я не понимал, что в заявлениях IF есть предел ... есть ли упрощенный альтернативный способ сделать то же самое?Excel, оператор IF, vlookup - слишком много параметров

=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)) 
+0

Какую версию Excel вы используете, и вам нужно обеспечить обратную совместимость до 2007 года? Функция [IFERROR] (https://support.office.com/en-US/Article/IFERROR-function-f59bacdc-78bd-4924-91df-a869d0b08cd5), введенная XL2007, может значительно уменьшить вложенные 'IF (ISNA()), 'формулы. – Jeeped

+0

Таблица поиска (содержащая CHA, CHAR, CHARL, CHARLY, CHARLYL) может сократить формулу. – pnuts

+0

@ Jeeped да это Excel 2007. Я буду смотреть в IFERROR, спасибо – Elen

ответ

1

функция Вложение IFERROR может значительно снизить формулу по сравнению с его IF(ISNA(...), ...) эквивалента.

=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)) 
+0

. Это похоже на работу! (о, да о IF - не заметил) – Elen

Смежные вопросы