2016-09-09 38 views
0

我有以下系列的if语句,我得到的错误是有太多的参数。我检查了一些其他类似问题的帖子,但在我的声明中看不到他们的问题。从本质上讲,如果单元格B2包含了许多个月,我需要它在某个电子表格进行VLOOKUP:Excel嵌入IF语句 - 太多的参数错误

=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声明中缺少论据的第二届“如果真值”一VLOOKUP。

尝试,而不是:

=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()代替嵌套的IF。整个公式可以简化为:

=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,就像你在其他月份文件中一样。关于这一变化的好处之一是,随着新月份工作簿的添加,该公式将自动获取它们。