IFERROR
效果很好,因为它通过默认行为大大缩短了公式,如果条件不满足(无错误),则返回结果。我正在寻找IFBLANK
此行为的版本,即如果条件不满足(非空白),则返回结果。
假设我有一个复杂的多行公式“核心公式”。我可以用来=IFERROR(Core Formula, "")
处理错误。
我想要类似的东西=IFBLANK(Core Formula, "")
。
我知道我可以用 来做到这一点=IF(Core Formula="","",Core Formula)
,但如果我的“核心公式”真的很复杂且冗长,“如果公式”会使我的公式长度加倍,并且很难跟踪/追踪/修改,尤其是当公式需要由其他贡献者审查时。
PS 我总是必须处理由具有不同含义的零和空白组成的数据。
答案1
Excel 中不存在此类函数,您有两个选择:
让
让函数仅在 Excel 365 的较新版本中可用,您可以使用该函数编写以下命令:
=LET(x,<core formula>,IF(x="","",x)
创建您自己的用户定义的 VBA 函数
打开 VBA 编辑器并输入以下代码:
Function IFBLANK(param1 As Variable, param2 As Variable) As Variable
If param1 = "" or param1 Is Null then
Return param2
Else
Return param1
End If
End Function
答案2
如果您拥有支持 LAMBDA 函数的最新版本的 Excel,则可以进入“名称管理器”并使用以下代码创建“IfBlank”条目来创建自己的函数:
=LAMBDA(value,default,IF(ISBLANK(value),default,value))
之后,您可以从工作簿中的任何位置调用它。
=IfBlank(A1,A2)
答案3
如果答案为空,Excel 将以不同于文本的方式处理内容。
一个可接受的解决方案(也是我一直使用的解决方案)是&""
在公式末尾添加一个。这将强制 Excel 将空白视为文本,并且您将不会看到通常看到的零。
请参阅这个问题。 在 Excel 2010 中引用空白单元格时显示空白