Excel、IF 语句、vlookup - 参数太多
Excel, IF statement, vlookup - too many parameters
你能帮我简化一下或引导我走向正确的方向吗?我的功能假设是先检查LABEL
table中是否存在单词中的7个字符,如果不存在,则先检查6,然后再检查5,依此类推...这是因为table 可以包含 CHARLYL
和 CHARLY
。
当我在公式下方输入时,出现错误 "Too many parameters"。我没有意识到 IF 语句有限制...是否有简化的替代方法来做同样的事情?
=if(isna(VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0)),
if(isna(VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
if(isna(VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
if(isna(VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
if(isna(VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0))
与其 IF(ISNA(...), ...)
等效函数相比,嵌套 IFERROR 函数可以大大减少公式。
=IFERROR(VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0),
IFERROR(VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0),
IFERROR(VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0),
IFERROR(VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0),
IFERROR(VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0),
"MISC")))))
这是您公式的修复版本。您添加默认 MISC 参数的次数超过了要求的次数。
=IF(ISNA(VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0)),
IF(ISNA(VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
IF(ISNA(VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
IF(ISNA(VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
IF(ISNA(VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
"MISC",
VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0))
你能帮我简化一下或引导我走向正确的方向吗?我的功能假设是先检查LABEL
table中是否存在单词中的7个字符,如果不存在,则先检查6,然后再检查5,依此类推...这是因为table 可以包含 CHARLYL
和 CHARLY
。
当我在公式下方输入时,出现错误 "Too many parameters"。我没有意识到 IF 语句有限制...是否有简化的替代方法来做同样的事情?
=if(isna(VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0)),
if(isna(VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
if(isna(VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
if(isna(VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
if(isna(VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
"MISC",VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0))
与其 IF(ISNA(...), ...)
等效函数相比,嵌套 IFERROR 函数可以大大减少公式。
=IFERROR(VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0),
IFERROR(VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0),
IFERROR(VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0),
IFERROR(VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0),
IFERROR(VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0),
"MISC")))))
这是您公式的修复版本。您添加默认 MISC 参数的次数超过了要求的次数。
=IF(ISNA(VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0)),
IF(ISNA(VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
IF(ISNA(VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
IF(ISNA(VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
IF(ISNA(VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
"MISC",
VLOOKUP(LEFT(A2,3),LABEL!A:B,2,0)),
VLOOKUP(LEFT(A2,4),LABEL!A:B,2,0)),
VLOOKUP(LEFT(A2,5),LABEL!A:B,2,0)),
VLOOKUP(LEFT(A2,6),LABEL!A:B,2,0)),
VLOOKUP(LEFT(A2,7),LABEL!A:B,2,0))