需求:
新交付的报表出了一个bug,8000行数据中有200行左右出现了空值。想想最近改动的内容,无非是在现有公式外层加了一层IFERROR而已,难道问题出在这里了?怎么验证这一猜想呢?
解决方法:
“公式求值(Evaluate Formula)”出场。很快,就发现公式求值过程中出现了#VALUE!错误。原来,日期字段中出现了空值(""),导致INT("")运算结果成了"#VALUE!",导致求值结果偏离了原公式的正常执行路径(具体表现为最后的赋值结果是空)。罪魁祸首便是在IFERROR函数的VALUE-IF-ERROR分支中使用了空值"",将其修改为0后,目标列会被成功赋值。但是,会出现“00-JAN-1900”的无效值,可在VBA代码加入替换逻辑(选中目标,将"1900/01/00"替换为"")。