【问题标题】:Complex "IF", "OR", "AND" functions复杂的“IF”、“OR”、“AND”函数
【发布时间】:2015-09-16 22:34:26
【问题描述】:

这是我到目前为止所做的:(见附件截图)

当在“装载”下添加某些内容时,它会获得某种状态。如果此状态是“Warte auf GO”或“Warte auf Daten”,并且 Datefield D2 中的日期超过 6 天前,我希望“Laden”下的单元格的颜色现在包含“Baretta”变黄。 为此,我添加了简单的功能:

=OR(AND(L4="warte auf GO"; 6<DAYS360(D4; today())); AND(L4="warte auf DATEN"; 6<DAYS360(D4; today())))

并使用条件格式。因此,如果返回 true,则将 A2 着色为黄色。 这行得通。

但现在问题是:其次,如果该字段变黄,我还有三个“提醒”单元格:

(1) 我收到了黄色字段 A2 的提醒,并将我对提醒做出反应的日期放在字段 N2 中。如果 6 天结束,A2 会再次变黄。
(2) 因此,我第二次被黄色字段 A2 提醒,并将我对提醒做出反应的日期放在字段 O2 中。如果 6 天结束,A2 会再次变黄。
(3) 和 (2) 一样。

所以基本上我将此表用作具有不同阶段的“提醒”系统。 我试图用下面的公式来解决它。它确实返回了一些“假”和“真”,但不是按照我完全理解的顺序。 我想这是一个逻辑问题,但我并没有真正看到它。

这是我使用的公式:

=IF(AND(OR(L4="warte auf GO"; L4="warte auf DATEN"); 6<DAYS360(D4; today());(OR(N4=""; AND(6<DAYS360(N4; today()); O4=""); AND(6<DAYS360(O4; today()); P4=""); AND(6<DAYS360(P4; today()))))); true; false)

【问题讨论】:

  • 那么新公式会发生什么,它给了我上面公式返回的准确值。所以并不是真正的改变;-)
  • 没有附上截图,虽然你一开始就说了。

标签: date if-statement google-sheets google-sheets-formula logical-operators


【解决方案1】:

我非常仔细地阅读了您的问题并试图找到答案。似乎以下公式可以满足您的需要:

=if(or(L4="warte auf GO",L4="warte auf DATEN"),if(today()-D4>6,if(today()-N4>6,if(today()-O4>6,if(today()-P4>6,true)))))

非常简单:
如果or(L4="warte auf GO",L4="warte auf DATEN"),则继续输入公式。
如果today()-D4&gt;6,请继续。
如果today()-N4&gt;6,请继续。
如果today()-O4&gt;6,请继续。
如果today()-P4&gt;6,你会得到TRUE,因为这是最后一步。

如果上述任何步骤未评估为TRUE,您将无法进一步进行 - 您将退出所有这些if's,最终结果为FALSE


补充说明。
我不建议您在日常计算中使用days360()。它仅在财务计算中有用。在某些情况下,该公式会产生不正确的结果。例如,以下所有公式都返回 30 的相同结果:

=days360(date(2015,7,31),date(2015,8,30))
=days360(date(2015,7,31),date(2015,8,31))
=days360(date(2015,7,30),date(2015,8,31))

这会导致 0

=days360(date(2015,7,30),date(2015,7,31))

【讨论】:

  • 非常感谢。抱歉回复晚了,我在放假。所以我所做的就是把你给我的公式分成四块。有了它,它确实工作得很好。我无法将它重新组合在一起,因为我不知何故出错了。这可能与我错过了“(”或其他东西;-)有关。再次感谢。但是你有什么建议不要使用“days360”?
  • 例如对于DAYS360(D4; today()),您可以使用today()-D4
猜你喜欢
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多