【问题标题】:If the hour is >=19 or <=8 then return a value "OOH" if its not within that range return "OPEN"如果小时 >=19 或 <=8,则返回值 \"OOH\" 如果不在该范围内,则返回 \"OPEN\"
【发布时间】:2022-08-14 03:15:28
【问题描述】:

我有公式

=IF(AND(HOUR(D2)<=8,HOUR(D2)>=19), \"OPEN\", \"OOH\")

这应该返回所需的文本值 \"OPEN\" 或 \"OOH\",具体取决于小时是否在指定的范围内。

在此表https://docs.google.com/spreadsheets/d/1xNFVHLnQGkRgZdLmejCyU0BByOPBY8NMoIYj6SkTFGY/edit#gid=431567503 的单元格 E2 中尝试时,它返回一个文本值,但并不总是正确的。这个公式可能缺少什么?

我也尝试过交换范围但没有成功

=IF(AND(HOUR(D2)>=19),HOUR(D2)<=8, \"OPEN\", \"OOH\")

更新:也尝试使用 OR 而不是 AND,但效果并不好

=IF(OR(HOUR(C3) >=19, HOUR(C3) <=8), \"OPEN\", \"OOH\")
  • 当您似乎更改目标单元格时,D2 或 C3 中的值是多少。

标签: datetime google-sheets-formula


【解决方案1】:

你的条件有点不对。 IF 表格是:

=IF(condition, value_if_true, value_if_false)

在您的问题中,您说小时 >=19或者小时 <= 8,所以你应该使用或者,就像您在更新中所做的那样。但是,您在更新后的语句中切换了真值和假值。尝试:

=IF(OR(HOUR(C3) &gt;=19, HOUR(C3) &lt;=8), "OOH", "OPEN")

在 8:01 时,返回“OOH”
9:01,这将返回“OPEN”
在 18:01 时,这将返回“OPEN”
对于 19:01,这将返回“OOH”

【讨论】:

    【解决方案2】:

    逻辑错误。事物不能同时是 <=8 和 >=19。

    如果您将符号反转为 >8 和 <19,您可能会更接近您想要的。

    【讨论】:

      【解决方案3】:

      如果从 8 到 19 = OPEN 然后在 E2 中使用它:

      =INDEX(IF((HOUR(C2:C)>=8)*(HOUR(C2:C)<19), "OPEN", "OOH"))
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-22
        • 2019-02-15
        • 2018-04-10
        • 1970-01-01
        • 2020-08-09
        • 1970-01-01
        相关资源
        最近更新 更多