【问题标题】:Why am I getting the error - Too many arguments from this formula?为什么我会收到错误消息 - 此公式中的参数太多?
【发布时间】:2015-11-03 04:25:22
【问题描述】:

我正在尝试为以下公式创建一个宏。不过,首先,当引用单独保存在硬盘上的电子表格时,我需要让公式起作用。以下是我所拥有的,但我收到了 Too many arguments 的错误。

=IFERROR(IF(C2<>"",IF(AND(VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE)="Assigned Attorney",OR(B2="Jimmy Edwards",B2="Kathleen McCarthy")),"Sales Team",IF(AND(VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE)="Intake Team, Assigned Attorney, or Sales Team",B2<>"Jimmy Edwards",B2<>"Kathleen McCarthy"),B2,IF(AND(VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE)="Intake Team, Assigned Attorney, or Sales Team",OR(B2="Jimmy Edwards",B2="Kathleen McCarthy")),"Sales Team",IF(VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE)="Assigned Attorney",B2,IF(AND(VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE)="Sales Team",OR(B2="Jimmy Edwards",B2="Kathleen McCarthy")),"Sales Team",IF(C2<>"",VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE),"INTAKE TEAM")))))), VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE),"")

有什么帮助吗?当我转到函数帮助时,所有参数都可以,但它会突出显示公式末尾的“”。

【问题讨论】:

  • 我怀疑VLOOKUP 调用是导致问题的原因。你能以某种方式简化公式吗?
  • 如果可以,我不知道该怎么做.. :/
  • 好的,让我们尝试将这些 VLOOKUP 语句拉出并放入它们自己的单元格中。然后从上述公式中引用这些单元格。这个公式现在有效吗?
  • 另外,需要注意的一点是,我使用了相同的公式,并且当我在同一张表上的 H 列和 I 列中找到查找表时,它起作用了。只有当我开始引用外部工作表时才出现此错误。
  • 那么,您是否建议,例如,最后一个 vlookup,(, VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE),"" ) 我改为引用 lpsmatch 表上的一个单元格,其中有相同的公式?或者,将其保留在此电子表格中? (基本上,我需要保持这个电子表格尽可能干净——这就是为什么这个公式在我开始工作后会变成一个宏......如果可以的话)

标签: excel excel-formula arguments


【解决方案1】:

fwiw,您可以使用 Alt+Enter 为您的长公式添加换行符并增加一点易读性。换行符和“空白”不会以任何方式对公式的性能产生负面影响。

    

要让它在当前状态下工作,我所要做的就是在尾部的 )... ,FALSE)), "")

有一些重复的逻辑可以配对。第 2 行可以与第 6 行和第 9 行进行或配对,第 11 行似乎完全多余,因为您仍然遵循第一个 IF(C2&lt;&gt;"",... 的 TRUE 路径,并且“无匹配”默认值似乎加倍。这是我最好的镜头。

=IFERROR(IF(C2<>"",
         IF(AND(
                OR(VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B, 2, FALSE)={"Assigned Attorney","Sales Team","Intake Team, Assigned Attorney, or Sales Team"}),
                OR(B2={"Jimmy Edwards","Kathleen McCarthy"})), "Sales Team",
         IF(AND(VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE)="Intake Team, Assigned Attorney, or Sales Team",
                OR(B2<>{"Jimmy Edwards","Kathleen McCarthy"})), B2,
         IF(VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE)="Assigned Attorney", B2,
             VLOOKUP(A2&"",[LPSMatch.xlsx]Sheet1!$A:$B,2,FALSE)))), "INTAKE TEAM"), "")

OR function(或AND function)可以与常量数组进行比较;例如=if(or("BCD" = {"abc", "bcd", "cde"}), ... 是真的。使用这种方法可以显着减少VLOOKUP functions

脚注:您使用的公式适用于打开的外部工作簿。如果工作簿已关闭,您将需要完整路径。如果您让公式正常工作,请关闭外部工作簿并添加所有完整路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 2011-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-03
    相关资源
    最近更新 更多