首页 > 解决方案 > 如何让单元格中的值改变一天中的时间和日期的条件?

问题描述

我希望单元格 X11(当前为“AM”)改变一天中的时间和一周中的一天的状态,以反映我的公司 3 个班次。我正在努力寻找方法。

轮班时间为: AM(周一至周四,上午 7:00 - 下午 6:00) PM(周一至周四,晚上 9:00 - 7:00) WKD(周五至周日,上午 7:00 - 下午 7:00)

现在我有换档单元(目前是“AM”,X11)硬键来改变换档时间,但是,理想情况下,例如,当它是星期四晚上 10 点时,它会自动变为“PM”,当它变成星期六早上 7 点,它会变成“WKD”,然后星期一早上 7 点它会变成“AM”。

看这里

这是当前的公式

标签: google-sheets

解决方案


试试这个公式:

=IF(OR(AND(WEEKDAY(NOW(), 2) = 1, AND(HOUR(NOW()) >= 0, HOUR(NOW()) < 7)), AND(WEEKDAY(NOW(), 2) >= 5, AND(HOUR(NOW()) >= 7, HOUR(NOW()) <= 19))), "WKD", IF(AND(HOUR(NOW()) >= 7, HOUR(NOW()) <= 18), "AM", "PM"))

测试用例:

在此处输入图像描述

每个测试用例的公式:

平日

  • 周一早上 7 点:=IF(OR(AND(1=1, AND(7 >= 0, 7 < 7)), AND(1 >= 5, AND(7 >= 7, 7 <= 19))), "WKD", IF(AND(7 >= 7, 7 <= 18), "AM", "PM"))
  • 周一晚上 9 点:=IF(OR(AND(1=1, AND(21 >= 0, 21 < 7)), AND(1 >= 5, AND(21 >= 7, 21 <= 19))), "WKD", IF(AND(21 >= 7, 21 <= 18), "AM", "PM"))
  • 周四下午 6 点:=IF(OR(AND(4=1, AND(18 >= 0, 18 < 7)), AND(4 >= 5, AND(18 >= 7, 18 <= 19))), "WKD", IF(AND(18 >= 7, 18 <= 18), "AM", "PM"))
  • 周五早上 6 点:=IF(OR(AND(5=1, AND(6 >= 0, 6 < 7)), AND(5 >= 5, AND(6 >= 7, 6 <= 19))), "WKD", IF(AND(6 >= 7, 6 <= 18), "AM", "PM"))

周末

  • 周一早上 6 点:=IF(OR(AND(1 >= 5, AND(6 >= 7, 6 <= 19)), 1 = 1, AND(6 > 0, 6 < 7)), "WKD", IF(AND(6 >= 7, 6 <= 18), "AM", "PM"))
  • 周五早上 7 点:=IF(OR(AND(5 >= 5, AND(7 >= 7, 7 <= 19)), 5 = 1, AND(7 > 0, 7 < 7)), "WKD", IF(AND(7 >= 7, 7 <= 18), "AM", "PM"))

参考:


推荐阅读