我有一个公式,用于检查单元格区域是否为空白。
如果它们都是空白的,我想返回另一个空白。
如果范围内的任何单元格不为空,我想要返回一个值Major Milestone Due
。
这是我目前的公式:
=IF(ISBLANK(BM2:BQ2),"","Major Milestone Due")
它将返回所有内容Major Milestone Due
,即使某些行范围内全是空白单元格。
答案1
COUNTA
将给出范围内单元格的数量不是空的。
所以尝试一下...
=IF(NOT(COUNTA(BM2:BQ2)),"","Major Milestone Due")
答案2
如果你的公式输入的是数组公式。
除非您使用++将其作为数组公式输入,否则它isblank
不适用于数组。它看起来像这样,周围有花括号:ctrlshiftenter
{=IF(ISBLANK(BM2:BQ2),"","Major Milestone Due")}
此外,if - counta 也可以做到这一点,没有问题 -
=IF(COUNTA(BM2:BQ2)=0,"","Major Milestone Due")
答案3
需要考虑的一个重要问题是您对“空白”的定义。根据您使用的措辞“我想返回另一个空白”,似乎您将“空白”定义为单元格出现空白,但实际上可能包含输出的公式""
,因此不是空的。
COUNTA
如果你想把这些类型的单元格作为空白处理,和方法ISBLANK
将不起作用,因为这两个公式寻找的是真正的空的单元格。要处理输出的公式""
,您有两个选择:
- 如果你始终知道范围的大小,则可以使用以下任一方法
=IF( COUNTBLANK(BM2:BQ2)=5, "", "Major Milestone Due")
=IF( COUNTIF(BM2:BQ2,"")=5, "", "Major Milestone Due")
:5是范围的大小。此方法不适用于动态范围。
- 稍微复杂一点的公式(至少解释起来更复杂!)使用
SUMPRODUCT
:
=IF( SUMPRODUCT(--(BM2:BQ2<>""))=0, "", "Major Milestone Due")
(请注意 与COUNTIF(BM2:BQ2,"<>")
有同样的问题COUNTA
。)
答案4
我来到这个页面是为了寻找几乎相同的问题的答案。
当我看到COUNTA
提到这一点时,我几乎立刻就知道该怎么做。在稍微不同的上下文中,我有一列左侧的列范围,我想显示not started
同一行中的所有单元格是否为空(空白)。
以下公式对我有用。
=IF(COUNTA(P3:U3)=0,"Not Started"...)
省略号表示IF
我的公式中还有几个附加函数,如果填充了一个或多个函数,则会对范围执行进一步测试。