我需要从Excel公式返回一个空单元格,但Excel似乎将空字符串或空单元格引用与真正的空单元格区别对待。所以本质上我需要

=IF(some_condition,EMPTY(),some_value)

我试着去做一些事情

=IF(some_condition,"",some_value)

and

=IF(some_condition,,some_value)

假设B1是空单元格

=IF(some_condition,B1,some_value)

但这些似乎都不是真正的空单元格,我猜是因为它们是公式的结果。是否有办法填充一个细胞当且仅当满足某些条件,否则保持细胞真正空?

编辑:按照建议,我尝试返回NA(),但对于我的目的,这也不工作。有办法用VB来做这个吗?

编辑:我正在构建一个工作表,它从其他工作表中拉入数据,这些工作表被格式化为将数据导入数据库的应用程序的非常特定的需求。我没有权限更改此应用程序的实现,如果值为“”而不是实际为空,则会失败。


当前回答

答案是肯定的——你不能使用=IF()函数而让单元格空着。"看起来空"和"空"不一样。遗憾的是,背靠背的两个引号没有产生一个空的单元格,否则公式就会消失。

其他回答

也许这是作弊,但很有效!

我还需要一个表作为图形的源,我不希望任何空白或零单元格在图形上产生一个点。的确,您需要设置图形属性,选择数据,隐藏和空单元格以“显示空单元格为间隙”(单击单选按钮)。这是第一步。

然后,在单元格中,可能会以不希望绘制的结果结束,将公式放在带有NA()结果的IF语句中,如=IF($A8>TODAY(),NA(), *formula to be *)

当出现无效的单元格值时,这将给出没有点的所需图形。当然,这使得所有具有无效值的单元格都要读取#N/A,这很混乱。

To clean this up, select the cell that may contain the invalid value, then select conditional formatting - new rule. Select 'format only cells that contain' and under the rule description select 'errors' from the drop down box. Then under format select font - colour - white (or whatever your background colour happens to be). Click the various buttons to get out and you should see that cells with invalid data look blank (they actually contain #N/A but white text on a white background looks blank.) Then the linked graph also does not display the invalid value points.

到目前为止,这是我能想到的最好的。

它使用ISBLANK函数来检查if语句中的单元格是否真的为空。 如果单元格中有任何内容(本例中的A1),甚至是一个空格字符,则该单元格不为EMPTY,计算将得到结果。 这将防止计算错误显示,直到你有数字工作。

如果单元格为EMPTY,则计算单元格将不显示计算中的错误。如果单元格不为空,则将显示计算结果。 如果您的数据是坏的,这将抛出一个错误,可怕的#DIV/0!

=IF(ISBLANK(A1)," ",STDEV(B5:B14))

根据需要更改单元格引用和公式。

那么你必须使用VBA了。您将遍历范围内的单元格,测试条件,并删除匹配的内容。

喜欢的东西:

For Each cell in SomeRange
  If (cell.value = SomeTest) Then cell.ClearContents
Next

答案是肯定的——你不能使用=IF()函数而让单元格空着。"看起来空"和"空"不一样。遗憾的是,背靠背的两个引号没有产生一个空的单元格,否则公式就会消失。

如果您像我一样,在一个空单元格后,以便单元格中的文本可以溢出到相邻的单元格,则返回“”,但将单元格格式的文本方向设置为旋转5度。如果向左对齐,您会发现这会导致文本溢出到相邻的单元格,就好像该单元格是空的一样。

参见before和after:

=IF(RANDARRAY(2,10,1,10,TRUE)>8,"abcdefghijklmnopqrstuvwxyz","")

请注意,空单元格不是空的,而是包含“”,但文本仍然可以溢出。