在Excel中从公式返回空单元格
我需要从Excel公式中返回一个空单元格,但看起来Excel处理空字符串或对空单元格的引用与真空单元格不同。 所以基本上我需要类似的东西
=IF(some_condition,EMPTY(),some_value)
我试图做的事情如
=IF(some_condition,"",some_value)
和
=IF(some_condition,,some_value)
并假设B1是一个空单元格
=IF(some_condition,B1,some_value)
但这些似乎都不是真正的空单元格,我猜是因为它们是公式的结果。 是否有任何方法来填充单元格当且仅当满足某些条件,否则保持单元格真空?
编辑:建议,我试图返回NA(),但为我的目的,这也没有工作。 有没有办法与VB做到这一点?
编辑:我正在建立一个工作表,从其他工作表中拉入数据,格式化为将数据导入数据库的应用程序的特定要求。 我没有权限更改此应用程序的实现,如果值为“”而不是实际为空,则失败。
那么你将不得不使用VBA
。 您将循环遍历范围内的单元格,测试条件并删除匹配的内容。
就像是:
For Each cell in SomeRange
If (cell.value = SomeTest) Then cell.ClearContents
Next
Excel没有办法做到这一点。
Excel中单元格中公式的结果必须是数字,文本,逻辑(布尔)或错误。 没有公式单元格值类型的“空白”或“空白”。
我之前看到的一种做法是使用NA()和ISNA(),但这可能会也可能不会真正解决您的问题,因为NA()被其他函数处理的方式存在很大差异(SUM(NA ))是#N / A,而如果A1为空,则SUM(A1)为0)。
对的,这是可能的。
如果条件得到满足,可能会有一个歼灭公式评估为trueblank。 它通过了ISBLANK公式的测试。 这个看似不可能的技巧可以通过几种不同的方式完成。 这里是我最喜欢的FrankensTeam系列的例子。
您将可以使用例如:
=IF(A1="Hello world",GetTrueBlank,A1)
在将GetTrueBlank
定义为命名范围之后 。
第1步。将此代码放入Module中。
Function Delete_UDF(rng)
ThisWorkbook.Application.Volatile
rng.Value = ""
End Function
关于VBA代码的两点评论。 (1)不要误导rng.Value=""
命名的愤怒GetTrueBlank
将最终成为一个真空,而不是像双引号=""
的空字符串。 (2)在我的测试中,The FrankensTeam最初使用的第一行代码ThisWorkbook.Application.Volatile
被证明是不必要的。
步骤2.在A1
单元的Sheet1
中,使用以下公式添加命名范围GetTrueBlank
:
=EVALUATE("Delete_UDF("&CELL("address",Sheet1!A1)&")")
第3步。使用自我消除公式。 把B2
放入单元格中,如下公式:
=IF(A2=0,GetTrueBlank,A2)
如果在A2
键入0,则B2
的上述公式将计算为真空。
你可以在这里下载演示文件 。
在上面的例子和The FrankensTeam的所有其他例子中,评估公式为trueblank会导致一个空单元格。 使用ISBLANK公式检查结果在TRUE中为正值。 这些是hara-kiri喜欢的公式。 公式在条件满足时从公式中消失。 目标已经达成,但问题的作者可能希望公式不要消失。
请注意,可能会修改这些示例以在相邻单元格中显示结果,而不会自行查杀。 但这是另一个问题,就是如何将公式结果存储在不同的单元格中,然后自行配置。
我在这里讨论了获得真实空白作为公式结果的例子:https://sites.google.com/site/e90e50/excel-formula-to-change-the-value-of-another-细胞
链接地址: http://www.djcxy.com/p/60777.html上一篇: Return empty cell from formula in Excel
下一篇: is javascript prototype with closure a good thing in terms of good practice