2016-09-09 3 views
0

У меня есть следующая последовательность операторов if, и я получаю ошибку, что слишком много аргументов. Я проверил некоторые другие сообщения с похожими проблемами, но не вижу их проблем в моем заявлении. По существу, если ячейка B2 содержит число месяца, мне нужно, чтобы выполнить ВПР на определенную таблицу:Excel вставляемые IF-инструкции - слишком много аргументов error

=if(B2=1,VLOOKUP(G2,'[Jan_Agent Hierarchy.xls]Sheet1'!$L$1:$U$4236,10,FALSE),if(B2=2,VLOOKUP(G2,'[feb_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$2:$U$4214,10,FALSE), if(B2=3,vlookup(G2,'[mar_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE), if(B2=4,VLOOKUP(G2,'[apr_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE),if(B2=5,'[may_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4234,10,FALSE),if(B2=6,VLOOKUP(G2,'[jun_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4310,10,FALSE),if(B2=7,VLOOKUP(G2,'[jul_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4322,10,FALSE),if(B2=8,VLOOKUP(G2,'[aug_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4288,10,FALSE))))) 

ответ

0

Когда я застревают в вложенной функции ад, как этот, я хотел разбить формулу с некоторое пустое пространство. Это делает очень легко пятнистость вопросов:

=if(
    B2=1, 
    VLOOKUP(G2,'[Jan_Agent Hierarchy.xls]Sheet1'!$L$1:$U$4236,10,FALSE), 
    if(
     B2=2, 
     VLOOKUP(G2,'[feb_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$2:$U$4214,10,FALSE), 
     if(
      B2=3, 
      vlookup(G2,'[mar_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE), 
      if(
       B2=4, 
       VLOOKUP(G2,'[apr_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE), 
       if(
        B2=5, 
        '[may_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4234,10,FALSE), 
        if(
         B2=6, 
         VLOOKUP(G2,'[jun_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4310,10,FALSE), 
         if(
          B2=7, 
          VLOOKUP(G2,'[jul_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4322,10,FALSE), 
          if(
           B2=8, 
           VLOOKUP(G2,'[aug_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4288,10,FALSE) 
          ) 
         ) 
        ) 
       ) 

Как я уже говорил в комментариях, вам не хватает 3 закрывающих скобок и ваш B2=5if заявления отсутствует ВПР во втором «значение, если оно истинен» аргумент.

Попробуйте вместо этого:

=if(
    B2=1, 
    VLOOKUP(G2,'[Jan_Agent Hierarchy.xls]Sheet1'!$L$1:$U$4236,10,FALSE), 
    if(
     B2=2, 
     VLOOKUP(G2,'[feb_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$2:$U$4214,10,FALSE), 
     if(
      B2=3, 
      vlookup(G2,'[mar_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE), 
      if(
       B2=4, 
       VLOOKUP(G2,'[apr_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE), 
       if(
        B2=5, 
        Vlookup('[may_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4234,10,FALSE), 
        if(
         B2=6, 
         VLOOKUP(G2,'[jun_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4310,10,FALSE), 
         if(
          B2=7, 
          VLOOKUP(G2,'[jul_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4322,10,FALSE), 
          if(
           B2=8, 
           VLOOKUP(G2,'[aug_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4288,10,FALSE) 
          ) 
         ) 
        ) 
       ) 
      ) 
     ) 
    ) 

Или:

=if(B2=1,VLOOKUP(G2,'[Jan_Agent Hierarchy.xls]Sheet1'!$L$1:$U$4236,10,FALSE),if(B2=2,VLOOKUP(G2,'[feb_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$2:$U$4214,10,FALSE), if(B2=3,vlookup(G2,'[mar_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE), if(B2=4,VLOOKUP(G2,'[apr_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4262,10,FALSE),if(B2=5,Vlookup('[may_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4234,10,FALSE),if(B2=6,VLOOKUP(G2,'[jun_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4310,10,FALSE),if(B2=7,VLOOKUP(G2,'[jul_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4322,10,FALSE),if(B2=8,VLOOKUP(G2,'[aug_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$4288,10,FALSE)))))))) 

Наконец, вы можете рассмотреть вопрос о переходе на INDIRECT() вместо вложенных МСФ. Вся ваша формула может быть уменьшена до:

=vlookup(G2, INDIRECT("[" & TEXT(DATE(2000,B2,1),"mmm")) & "_Agent Hierarchy.xls]Agent Hierarchy Details'!$L$1:$U$5000"), 10, False) 

Который является уродливым в своем собственном праве, но получает вас из вложенной if() ад. Indirect() изменяет строку на диапазон. Мы используем номер в B2, чтобы определить аббревиатуру месяца, затем используйте это для ссылки на лист и диапазон внутри Indirect(). Затем выполните vlookup в этом диапазоне.

Одно из предостережений с этим изменением заключается в том, что вы заходите в свой файл Jan и меняете имя вкладки Sheet1 равным Agent Hierarchy Details, как и у других файлов месяца. Одна из приятных вещей об этом изменении заключается в том, что с добавлением новых месяцев книги формула автоматически захватывает их.

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