Excel-在IF和函数上输入太多参数

Excel-在IF和函数上输入太多参数,excel,excel-formula,worksheet-function,Excel,Excel Formula,Worksheet Function,Excel在我的公式中抛出错误: 您为此函数输入的参数太多 IFANDJ2=盎司,K25,VLOOKUPD2,'一等盎司'$A$2:$B$17,2,0,如果J2=磅,K25,索引“磅和区域优先级”$A$2:$K$73,匹配2,'lbs和区域优先'$A$2:$A$73,0,MATCHH2,'lbs and zones priority'$A$2:$K$2,0 我知道这是一个非常难看的公式。根据您的代码,看起来您只需要为每个部分正确使用括号即可 正常,如果块如下所示: IF ( CONDITION,

Excel在我的公式中抛出错误: 您为此函数输入的参数太多

IFANDJ2=盎司,K25,VLOOKUPD2,'一等盎司'$A$2:$B$17,2,0,如果J2=磅,K25,索引“磅和区域优先级”$A$2:$K$73,匹配2,'lbs和区域优先'$A$2:$A$73,0,MATCHH2,'lbs and zones priority'$A$2:$K$2,0


我知道这是一个非常难看的公式。

根据您的代码,看起来您只需要为每个部分正确使用括号即可

正常,如果块如下所示:

IF ( CONDITION,
    <TRUE STATEMENT>,
    <FALSE STATEMENT>
)
IF ( AND(J2="Ounces",K2<=5),
    (VLOOKUP(D2,'Parcel Select oz Lightweight'!$A$2:$B$17,2,0)),
    (IF(AND(J2="Ounces",K2>5),
            (VLOOKUP(D2,'First Class oz'!$A$2:$B$17,2,0)),
            (IF(AND(J2="Pounds",K2<=5),
                (INDEX('lb and zones select'!$A$2:$K$73,MATCH(D2,'lb and zones select'!$A$2:$A$73,0),MATCH(H2,('lb and zones select'!$A$2:$K$2)))),
                (IF(AND(J2="Pounds",K2>5),
                    (INDEX('lbs and zones priority'!$A$2:$K$73,MATCH(D2,'lbs and zones priority'!$A$2:$A$73,0),MATCH(H2,'lbs and zones priority'!$A$2:$K$2,0))),
                    (<Put a false part here, it was missing your code>)
                ))
            ))
    ))  

)
对于嵌套语句或if,使用括号。 将所有嵌套的true和false语句部分放在括号中:

IF ( CONDITION,
    (<TRUE STATEMENT>),
    (<FALSE STATEMENT>)
)
通过这种方式,您的代码可以如下所示:

IF ( CONDITION,
    <TRUE STATEMENT>,
    <FALSE STATEMENT>
)
IF ( AND(J2="Ounces",K2<=5),
    (VLOOKUP(D2,'Parcel Select oz Lightweight'!$A$2:$B$17,2,0)),
    (IF(AND(J2="Ounces",K2>5),
            (VLOOKUP(D2,'First Class oz'!$A$2:$B$17,2,0)),
            (IF(AND(J2="Pounds",K2<=5),
                (INDEX('lb and zones select'!$A$2:$K$73,MATCH(D2,'lb and zones select'!$A$2:$A$73,0),MATCH(H2,('lb and zones select'!$A$2:$K$2)))),
                (IF(AND(J2="Pounds",K2>5),
                    (INDEX('lbs and zones priority'!$A$2:$K$73,MATCH(D2,'lbs and zones priority'!$A$2:$A$73,0),MATCH(H2,'lbs and zones priority'!$A$2:$K$2,0))),
                    (<Put a false part here, it was missing your code>)
                ))
            ))
    ))  

)

请检查上述代码和您的代码的差异,以详细了解您错过括号开始或结束的地方。

如果您用缩进分隔代码,您将看到您的第一个If有4个参数Condition、True语句、False语句、过多语句,而您的第二个和第四个If只有2个参数:

=如果 ANDJ2=盎司,K25,//条件 VLOOKUPD2,“头等舱奥兹”$A$2:$B$17,2,0//True ,//没有错吗? 如果……太多了! ANDJ2=磅,K25,//条件 索引“lbs和区域优先级”$A$2:$K$73,//正确 匹配2,“lbs和区域优先”$A$2:$73,0澳元, 匹配2,“lbs和区域优先”$A$2:$K$2,0 //没有假的吗? 看起来您放错了括号,需要将其移到末尾


跳过False语句只意味着公式在这种情况下返回False

只需将其分解为最小的部分,然后开始添加更多的内容即可。在组装之前,让每个单独的部件自己工作。这很费时,但并不难,你不应该因为不想让别人这么做而期望别人这么做。除此之外,这是一堂关于故障排除的基础课,这是一门非常基础的编程课。现在我仔细看,它有一些问题,在不知道您实际要做什么的情况下,其他任何人都不可能进行故障排除。扔掉它,重新开始,让每个人在把它们放在一起之前都能工作。另外,我要指出的是,你正在使用更多的函数,如果和作为你的标题状态。