【问题标题】:excel - if cell is not blank, then do IF statementexcel - 如果单元格不为空,则执行 IF 语句
【发布时间】:2017-04-07 15:52:55
【问题描述】:

我在excel 中有这个简单的声明。我比较两个日期。如果日期 2 大于或等于日期 1,则显示 1。如果不是,则显示 0

但是,我想在单元格包含文本时应用此功能:

IF(NOT(ISBLANK((Q2<=R2;"1";"0")))

这给了我一个错误 - 我做错了什么?

【问题讨论】:

  • 哪个单元格不能为空? Q2? R2?两者都有?
  • 两个单元格都应该包含数据。

标签: excel


【解决方案1】:

你的公式是错误的。你的意思可能是这样的:

=IF(AND(NOT(ISBLANK(Q2));NOT(ISBLANK(R2)));IF(Q2<=R2;"1";"0");"")

另一个等价物:

=IF(NOT(OR(ISBLANK(Q2);ISBLANK(R2)));IF(Q2<=R2;"1";"0");"")

甚至更短:

=IF(OR(ISBLANK(Q2);ISBLANK(R2));"";IF(Q2<=R2;"1";"0"))

甚至更短:

=IF(OR(ISBLANK(Q2);ISBLANK(R2));"";--(Q2<=R2))

【讨论】:

  • 由于输出为 0 或 1,这也可能是:=(Q2&lt;&gt;"")*(R2&lt;&gt;"")*(Q2&lt;=R2) 这会将括号中的每个语句评估为 TRUE 或 FALSE,相当于 0 或 1。然后将它们相乘.所有三个陈述都必须为真才能得到 1。
  • 嗯,是的,但是...我只是不想将布尔表达式相乘...* 属于算术。我想。
  • 这是一台电脑;一切都是算术。不过,我喜欢您的答案,它们可能更适合 OP 的舒适度,并且更容易更改。如果将来 OP 想让它输出“是”或“否”而不是 1 或 0,那么嵌套的 IF 就是要走的路。
【解决方案2】:

您需要在公式中使用 AND 语句

=IF(AND(IF(NOT(ISBLANK(Q2));TRUE;FALSE);Q2

如果两个条件都满足,则返回 1。

您还可以在 AND 语句中添加更多条件。

【讨论】:

  • 这可以缩短为=IF(AND(NOT(ISBLANK(Q2));Q2&lt;=R2);"1";"0")=IF(boolean;TRUE;FALSE) 等价于 =boolean。此外,您的变体将始终返回一个值,即使其中一个或两个单元格为空。
猜你喜欢
  • 2018-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-08
相关资源
最近更新 更多