克里斯在工作簿中有一系列工作表,每年每个月一个。在摘要工作表上,他想对每个工作表的同一单元格中的值求和。克里斯通过使用类似于以下内容的公式来做到这一点:

=SUM(January:December!B19)

除范围中B19单元格之一可能包含值#N / A的那些实例外,此方法工作正常。在这种情况下,Chris在摘要表上的结果中也会得到#N / A。克里斯希望将#N / A结果作为总和忽略,就好像这些单元格是空白的一样。

有两种方法可以解决此问题。也许最好的方法是查看每个月工作表的单元格B19中使用的公式。例如,假设每个工作表上的公式如下:

=SUM(B1:B18)

您可以更改这些单独的工作表上的公式,以便它们考虑#N / A值的可能性。例如,以下内容在每个工作表上的B19都可以正常工作:

=SUMIF(B1: B18,"<>#N/A")

这将导致每个工作表上单元格B19中的总和基于该范围内的所有非N / A值。因此,您可能会认为可以在摘要表上执行此操作:

=SUMIF(January:December!B19,"<>#N/A")

但是,这是行不通的,因为SUMIF函数本质上不是“三维”的。它不能以所示方式在一系列工作表上使用。出于这个原因,最好的解决方案是返回到每个工作表上汇总工作表上已记录的各个值。

如果您在各个月工作表上的公式不使用SUM函数,则更改它们以使用SUMIF显然不那么容易。在这种情况下,您可能需要在检查中“封闭”现有公式,以查看该公式是否返回错误值。此技术是通过以下方式完成的:

=IF(ISERROR(<current_B19_formula>),0,<current_B19_formula>)

IF函数查找True / False值,该值由ISERROR函数返回。因此,如果公式返回错误值(例如#N / A),则IF函数将返回0,否则它将返回原始公式的结果。这种方法检查任何错误结果;如果您希望只检查#N / A结果而忽略它们,则可以使用以下变体:

=IF(ISNA(<current_B19_formula>),0,<current_B19_formula>)

这些基于IF的方法与使用技巧中前面提到的SUMIF方法之间存在很大差异。 SUMIF方法返回该范围内所有非N / A值的总和,但是如果该范围内有任何#N / A值,则基于IF的方法将整个总和返回0。显然,这可能会影响摘要表中显示的内容,因此您需要确定哪种方法最适合您正在使用的数据。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

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