Excel 中 IF 函数的“参数过多”

Excel 中 IF 函数的“参数过多”

我一直收到错误,说函数太多。我想实现的是,如果特定列(星期一至星期日)中列出了小时数,则将日期(在单元格 Y1 中)减去正确的天数。为什么它不起作用?

=IF(M3<>"", $Y$1-6, "",IF(N3<>"", $Y$1-5, "", IF(O3<>"", $Y$1-4, "",IF(P3<>"", $Y$1-3, "",IF(Q3<>"", $Y$1-2, "", IF(R3<>"", $Y$1-1, "",IF(S3<>"", $Y$1, "")))))))

答案1

嵌套的 if 将进入父 IF 的 FALSE 位置:

=IF(M3<>"", $Y$1-6,IF(N3<>"", $Y$1-5,IF(O3<>"", $Y$1-4,IF(P3<>"", $Y$1-3,IF(Q3<>"", $Y$1-2, IF(R3<>"", $Y$1-1,IF(S3<>"", $Y$1,"")))))))

但话虽如此,我们当然可以让它更加精简:

=$Y$1-7-MATCH(TRUE,INDEX(M3:S3<>"",),0)

INDEX 返回一个 TRUE/FALSE 数组给 MATCH。MATCH 返回该数组中第一个 TRUE 的相对位置。我们从 7 中减去该值,得到从 Y1 中减去的正确值

相关内容