我有一个电子表格,它引用了另一个选项卡上的空白单元格。我使用 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 错误来代替空白单元格,因此该单元格将被忽略。