当引用的单元格为空时返回零(Microsoft Excel)
如果您在工作表中有一个公式,并且该公式引用的单元格为空白,则该公式仍将返回零值。例如,如果您有公式= A3,则该公式将返回单元格A3的内容,除非单元格A3为空白。在这种情况下,公式将返回零值。
这似乎与以下想法有关:当“空白”与“空”同义使用时,公式不可能返回空白值。
但是,可以稍微扩展公式,以便它返回一个空字符串。代替使用= A3作为公式,可以使用以下命令:
=IF(ISBLANK(A3),"",A3)
此公式使用ISBLANK,它返回True或False,具体取决于所引用的单元格(A3)是否为空白。然后,如果A3为空,则IF函数返回一个空字符串(“”),或者如果A3不为空,则使用A3中的值。
无论公式返回什么,您仍然可以在其他公式中使用其结果,并且可以正常使用。即使返回一个空字符串,其他公式仍将其视为包含零。
在将单元格视为包含零的区域中可能会出现问题(例如,在绘制公式的结果时),则可以对公式进行一些修改,如下所示:
=IF(ISBLANK(A3),NA(),A3)
如果A3为空白,此公式将返回#N / A错误。该错误会通过引用该公式的其他公式传播,但是在绘制图表时,#N / A错误将被完全忽略。
尽管上述解决方案对大多数人来说都是令人满意的,但有些人确实希望目标单元格为空白,如果源单元格为空白。例如,如果单元格A3为空白,则您可能希望单元格B7为空白。如果将公式放在单元格B7中(如前所述),则单元格B7并不是真正的空白-它包含一个公式。
如果这是您的目标-真正的“空白”-那么您只能通过使用宏来实现。该宏将需要检查以查看源单元是否已更改。如果是,则需要将源中的所有内容复制到目标单元中。
Private Sub Worksheet_Change(ByVal Target As Excel.Range) Dim rMonitor As Range Dim rTarget As Range Set rMonitor = Range("A3") Set rTarget = Range("B7") If Not Intersect(Target, rMonitor) Is Nothing Then rMonitor.Copy rTarget End If Set rMonitor = Nothing Set rTarget = Nothing End Sub
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(10105)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:
链接:/ excel-Returning_Zero_when_a_Referenced_Cell_is_Blank [当引用的单元格为空时返回零]。