【问题标题】:excel IF formula Error, "You've entered too many arguments"excel IF公式错误,“您输入的参数太多”
【发布时间】:2018-12-22 04:00:12
【问题描述】:

有人可以帮忙吗?它说,“你为此函数输入了太多参数”,但如果我删除两行就可以了。

=IF(IF(AND(J7<>"",IFERROR(MATCH(J$3, C7:F7, 0), "")<>""), IFERROR(MATCH(J$3, C7:F7, 0), ""),    
IF(AND(K7<>"",IFERROR(MATCH(K$3, C7:F7, 0), "")<>""), IFERROR(MATCH(K$3, C7:F7, 0), ""),    
IF(AND(L7<>"", IFERROR(MATCH(L$3, C7:F7, 0), "")<>""), IFERROR(MATCH(L$3, C7:F7, 0), ""),    
IF(AND(M7<>"", IFERROR(MATCH(M$3, C7:F7, 0), "")<>""), IFERROR(MATCH(M$3, C7:F7, 0), ""),    
IF(AND(N7<>"", IFERROR(MATCH(N$3, C7:F7, 0), "")<>""), IFERROR(MATCH(N$3, C7:F7, 0), ""),    
IF(AND(O7<>"", IFERROR(MATCH(O$3, C7:F7, 0), "")<>""), IFERROR(MATCH(O$3, C7:F7, 0), ""),    
IF(AND(P7<>"", IFERROR(MATCH(P$3, C7:F7, 0), "")<>""), IFERROR(MATCH(P$3, C7:F7, 0), ""),    
IF(AND(Q7<>"", IFERROR(MATCH(Q$3, C7:F7, 0), "")<>""), IFERROR(MATCH(Q$3, C7:F7, 0), ""),    
IF(AND(R7<>"", IFERROR(MATCH(R$3, C7:F7, 0), "")<>""), IFERROR(MATCH(R$3, C7:F7, 0), ""),    
IF(AND(S7<>"", IFERROR(MATCH(S$3, C7:F7, 0), "")<>""), IFERROR(MATCH(S$3, C7:F7, 0), ""),    
IF(AND(T7<>"",IFERROR(MATCH(T$3, C7:F7, 0), "")<>""), IFERROR(MATCH(T$3, C7:F7, 0), ""),    
IF(AND(U7<>"",  IFERROR(MATCH(U$3, C7:F7, 0), "")<>""),IFERROR(MATCH(U$3, C7:F7, 0), ""), ""))))))))))<>"", TRUE, FALSE)

【问题讨论】:

  • 如果你只知道 TRUE/FALSE:=SUMPRODUCT(COUNTIF(C7:F7,J$3:U$3))&gt;0
  • 也许包括一个简短的叙述,解释您正在尝试做什么以及您希望返回什么。必须有更好的方法来完成您正在尝试的事情。
  • Excel 对长度公式有内置限制。你只是击中了它。这通常意味着您正在尝试使用公式进行过于复杂的操作。也许 VBA 是前进的方向?
  • 我同意有一些目标线索会有所帮助,但如果你想让这个在语法上正确,你需要在最后一个 之前在集群中添加另外两个右括号"
  • @OleThomsenBuus 我没看到他在哪里使用 Excel 2003。从那时起,公式长度限制为 8,192 个字符,而这个公式远低于此值。

标签: excel if-statement formulas


【解决方案1】:

“参数太多”表示“,”,“(”&“)”的数量不对。只需仔细检查每个 if(a,b,c) 和 and(a,b,c) 是否有足够的括号、数据/参数和逗号。

在您的代码中,共有 73 个 "(" 并且只有 71 个 ")" 。因此,很明显某些“(”或“IF(”没有正确关闭。更正的版本:

=IF(AND(S284<>"",R284<>"",A284<>B284),INDEX(RATE, MATCH($A284,BID_NO,0), MATCH($R284,RATES,0)),  IF(AND(S284<>"'',R284="",A284<>B284),INDEX(SHIFT_INFO, MATCH($A284,SHIFT_BID,0), MATCH(L$4,SHIFT_HEADER,0)),  IF(AND(S284="",R284<>"",INDEX(SHIFT_INFO, MATCH($B284,SHIFT_BID,0), MATCH(L$4,SHIFT_HEADER,0)) <> INDEX(SHIFT_INFO, MATCH($A284,SHIFT_BID,0))),INDEX(RATE, MATCH($A284,BID_NO,0), MATCH($R284,RATES,0)),  IF(AND(S284="",R284="",INDEX(SHIFT_INFO, MATCH($B284,SHIFT_BID,0), MATCH(L$4,SHIFT_HEADER,0)) <> INDEX(SHIFT_INFO, MATCH($A284,SHIFT_BID,0))),INDEX(SHIFT_INFO, MATCH($A284,SHIFT_BID,0), MATCH(L$4,SHIFT_HEADER,0)),"")))) 

应该够了。

希望能解决.. (:

p/s:您也可以使用 notepad++ 或其他编码工具来帮助“突出显示”括号对。

【讨论】:

    猜你喜欢
    • 2020-12-03
    • 2019-09-30
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多