IF语句:如果条件为假,如何使单元格保持空白(“”无效)

153

如果条件为假,我想编写一个IF语句,在这种情况下单元格将保持空白。 请注意,如果例如在C1(条件为false的情况下)输入以下公式:

 =IF(A1=1,B1,"")

如果使用=ISBLANK(C1)测试C1是否为空,即使C1看起来是空的,也会返回FALSE。这意味着,如果条件未满足,则=IF(A1=1,B1,"")公式在技术上不会使单元格为空。

有什么想法可以实现这一点吗?谢谢。


2
那是因为它不是空的。它里面有一个公式。试试这个=C1=""或者如果你想变得更疯狂一些=IF(OR(C1="",ISBLANK(C1)),TRUE,FALSE)。 - Stepan1010
4
不需要变得那么疯狂,因为 OR(C1="",ISBLANK(C1)) 是等价的。 - Museful
1
这里有一种方法可以在满足条件时获得真正的空白:https://dev59.com/QXNA5IYBdhLWcg3wBpHs#39351425 - Przemyslaw Remin
@Museful,它们并不完全等价。C1="" 对于两种情况都适用,但是如果 C1 包含来自 IF 公式的 "",则 ISBLANK(C1) 将返回 false。你的回答让人感觉好像在任何情况下都可以使用其中任意一个。 - pbarney
16个回答

78

很遗憾,没有一种公式能够使单元格真正变为空白,"" 是公式所能提供的最好方式。

我不喜欢使用 ISBLANK 函数,因为它无法将只包含 "" 的单元格视为空白。相反,我更喜欢 COUNTBLANK 函数,它将会把 "" 视为空白,所以基本上 =COUNTBLANK(C1)>0 就意味着 C1 是空白或者它的内容是 ""

如果你需要删除一个列中的空白单元格,我建议你在该列上进行筛选,选择筛选结果中的单元格,然后按下 Del 键。之后再移除筛选即可。


4
“=COUNTBLANK(C1)>0”真的起了作用!“ISBLANK()”对我没用。谢谢! - StinkyCat
4
在“IF”语句的上下文中,任何大于0的数字都会被评估为“TRUE”,因此您可以只替换“IF(COUNTBLANK(C1),....)”,无需使用“> 0”,以使代码更加简洁。 - Tom Auger
这里有一种方法可以获得真正的空白作为公式结果:https://dev59.com/QXNA5IYBdhLWcg3wBpHs#39351425 - Przemyslaw Remin
请在单元格中使用#N/A而不是留空。 - babipsylon

47

试试这个替代方案

=IF(ISBLANK(C1),TRUE,(TRIM(C1)=""))

这将返回对于那些确实为空或仅包含空格的单元格为真。

请参阅此帖子获取其他几个选项。

编辑

根据评论和您最终所做的,改为将其计算为“”输入另一个值,如 'deleteme',然后搜索' deleteme '而不是空白。

=IF(ISBLANK(C1),TRUE,(TRIM(C1)="deleteme"))

1
对我来说,问题不在于“空白测试”的结果,而在于以下问题:我将if语句应用于整个行,然后我想使用转到->特殊->空白从该行中删除空白单元格,即条件为false的单元格。但是,由于我的IF语句并不完全返回空白单元格,因此转到无法检测到我的行中的任何空白单元格。因此,我需要修改我的IF语句,以便适当返回空白单元格。 - Mayou
4
如果你打算删除它们,可以返回一个不同的值(例如“deleteme”),然后在其他程序中搜索该值。 - Automate This
2
谢谢你的提示!那正是我所做的!我尝试了=IF(A1,B1,NA()),然后使用 转到 -> 特殊 -> 公式 -> 错误,成功删除了不符合条件的单元格!再次感谢你的提示! - Mayou

28

我想补充一点,还有另一种可能性 - 使用函数na()

例如:=if(a2 = 5,"good",na())

这将填充单元格为 #N/A,如果你绘制该列的图表,则数据不会被绘制出来。我知道这不是"空白",但如果您的数据中存在空字符串且""是有效选项,则这是另一种可能性。

此外,通过这样做,count(a:a)将不会计算已设置为 n/a 的单元格。


2

你可以尝试这个。

=IF(A1=1,B1,TRIM(" "))

如果你将这个公式放在C1单元格中,那么你就可以在其他单元格中测试该单元格是否为空。

=ISBLANK(C1)

你应该会看到TRUE。我已经在Microsoft Excel 2013上尝试过了。希望这能帮到你。


同样适用于LibreOffice Calc! - dmitry_romanov

2
如果您想使用带有公式的现象性空单元格进行算术/数学运算,您需要使用以下公式:
=N(C1)

假设C1是一个“空白”单元格。

0

C1 中的公式

=IF(A1=1,B1,"")

返回的答案可能是“”(不被视为空白),也可能是B1的内容。

如果您希望D1中的公式在C1为“”时显示TRUE,并在C1中有其他内容时显示FALSE,请使用以下公式

=IF(C2="",TRUE,FALSE)

用ISBLANK的替代品


0
我发现这个解决方法似乎很有效:
修改您的原始公式:
=IF(A1=1,B1,"filler")

然后选择列,搜索并替换“filler”为空。你想要为空的单元格实际上是空的,如果你使用“ISBLANK”进行测试,它将返回TRUE。虽然不是最优雅的方法,但它很快并且有效。


这样行不通,查找和替换将会替换公式中的filler,导致与之前一样的问题。 - ChrisM

0

这应该可以解决问题(对上述内容进行修改,是一种变通方法,而非公式)

修改您的原始公式: =IF(A1=1,B1,"filler")

在电子表格上放置筛选器,在B列中仅选择“filler”,突出显示所有包含“filler”的单元格,按删除键,然后移除筛选器


我有点感觉这不是 OP 想要的。他似乎想要一个公式。你说这不是一个公式,但还是。 - ZygD

0

0

最简单的解决方案是使用条件格式,如果IF语句返回false,则将结果单元格的字体更改为任何颜色背景。 是的,技术上说,单元格不是空白的,但您将无法看到其内容。


可以使用if语句来清空单元格。虽然您的解决方案可行,但不是最佳方法。 - Matt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接