google-sheets - 如何让单元格中的值改变一天中的时间和日期的条件?
问题描述
我希望单元格 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”。
解决方案
试试这个公式:
=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"))
参考:
推荐阅读
- reactjs - 设置 webpack 以导出到设置文件夹
- android - 从联系人详细信息自定义行打开应用程序时获取联系人信息
- php - 使用 where 子句选择单行时,表的大小是否会影响速度
- flutter - 使用 AnimatedListView 使提供者的列表保持最新
- sql - 基于 1 个表中的 3 列的 case 语句
- python - 如何在 Python 中查找另一个表中的值
- android - 迭代协程并等待结果
- c# - 获取客户端的 IP 地址
- google-chrome - 使用 chrome 无头选项打印到 pdf 的其他选项
- wolfram-mathematica - 如何“扩展”/更改 Normal PDF 和 CDF 的导数形式?