引用空白单元格 - 应像空白单元格一样

引用空白单元格 - 应像空白单元格一样

我有一个电子表格,它引用了另一个选项卡上的空白单元格。我使用 iif(isblank(thatcell),"",thatcell)。这很好用,直到我使用该单元格进行计算。当我包含该单元格来计算标准差(或甚至 counta())时,它会将空白单元格视为零。我想知道是否有其他解决方法。如果 excel 可以创建一个函数 blankcell() 来代替 "",那就最好了。有人能帮帮我吗?

答案1

对于任何公式,除非明确排除空白,否则空白都是零。最好的办法是使用 VBA 中的用户定义函数来处理您的项目。例如:

Sub SumNonBlanks()
 For each c in range("A:A")
  If c.value <> "" then
  'Enter them into an array
  End if
 Next
'Do stuff to array
End Sub

一种解决方法是在公式中排除零,类似于=SUM(if(A1:A10 <> 0,A1:A10))输入数组公式。

数组公式的输入方式是先键入然后按ctrl shift enter

有争议的部分:但是如果您需要包含零,则需要变得更加复杂,例如数组公式。=SUM(IF(Not(Isblank(... =sumif(not(isblank(...

答案2

另一种解决方法是使用 函数来计算标准差,这种方法不需要编写自定义函数AGGREGATE。此函数的优点是,与SUM或不同STDEV,它可以忽略错误。

为了实现此功能,您需要让第一个单元格返回错误而不是空文本字符串。在第一个单元格中,输入

=IF(ISBLANK(ThatCell),NA(),H23)

NA函数仅返回#N/A 错误。

STDEV然后,不要使用来计算标准差,而是使用

=AGGREGATE(7,6,Range)

函数中的第一个选项AGGREGATE,在本例中7指示它执行 STDEV.S 计算(要使用 STDEV.P,请使用8)。第二个选项,在本例中6,指示函数忽略错误。由于您指示IF返回 #N/A 错误来代替空白单元格,因此该单元格将被忽略。

AGGREGATE 函数

NA 函数

相关内容