如果您在工作表中有一个公式,并且该公式引用的单元格为空白,则该公式仍将返回零值。例如,如果您有公式= 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培训的来源。

本技巧(2174)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: