是否可以在长公式中隐藏 #Value?我尝试了 IFERROR,但 Excel 说参数太多

是否可以在长公式中隐藏 #Value?我尝试了 IFERROR,但 Excel 说参数太多

我正在尝试制作一个根据输入的年份/月份动态变化的日历。

单元格 F11 的单元格公式为:

=IF(OR(E11="",VALUE(E11)>EOMONTH(DATEVALUE(1&B5&Year),0)-EOMONTH(DATEVALUE(1&B5&Year),-1)-1), "",E11+1)

仅供参考,电子表格的链接:
https://1drv.ms/x/s!AqB4pWPNC0Uche8l1X-RaumvmRwBkA?e=yhlIb2

答案1

“您输入了太多参数...”与公式的长度无关,它只是意味着您将它放在了错误的位置(可能在 IF 内但没有嵌套它。)

最简单的使用方法IFERROR是将整个公式包装在其中,如下所示:

=IFERROR(IF(OR(E11="",VALUE(E11)>EOMONTH(DATEVALUE(1&B5&Year),0)-EOMONTH(DATEVALUE(1&B5&Year),-1)-1), "",E11+1),"")

答案2

如果您想在冗长的公式中隐藏 #VALUE!,可以使用 IFERROR 函数,但如果参数太多,该函数可能不起作用。一种解决方案是将公式拆分为较小的部分,并对每个部分应用 IFERROR。这样,如果发生错误,公式将返回一个空字符串。另一种解决方案是,如果您使用的是旧版本的 Excel,请使用 ISERROR 而不是 IFERROR,因为它的作用相同。

选项 1:将公式拆分为更小的部分,并对每个部分使用 IFERROR。

原配方:

=IF(OR(E11="",VALUE(E11)>EOMONTH(DATEVALUE(1&B5&Year),0)-EOMONTH(DATEVALUE(1&B5&Year),-1)-1), "",E11+1)

重写公式:

=IF(OR(E11="", IFERROR(VALUE(E11)>IFERROR(EOMONTH(DATEVALUE(1&B5&Year),0)-EOMONTH(DATEVALUE(1&B5&Year),-1)-1, ""), "")), "", E11+1)

选项 2:使用 ISERROR 而不是 IFERROR。

原配方:

=IF(OR(E11="",VALUE(E11)>EOMONTH(DATEVALUE(1&B5&Year),0)-EOMONTH(DATEVALUE(1&B5&Year),-1)-1), "",E11+1)

重写公式:

=IF(OR(E11="", IF(ISERROR(VALUE(E11)>EOMONTH(DATEVALUE(1&B5&Year),0)-EOMONTH(DATEVALUE(1&B5&Year),-1)-1), ""), ""), E11+1)

请注意,重写的两个公式应该具有与原始公式相同的结果。

相关内容