我正在创建每日安排报告。并非报告中的每个职位都必须每天都配备人员,但是有规则决定这一点(主要是夏令时)而且我一直在试着找出一个很好的方法来解决这个问题。任何人都需要在任何一天填写表格。
我的问题:11月开始第一个星期天,一个职位并不需要一直配备人员。这一直持续到3月的第二个星期天。我希望显示此位置的框有条件地根据今天的日期进行格式化(使用= Today()显示在E1中)
我得到了一些接近工作的东西(尽管看起来很恶心),并且会引用消息来源,但是在经过几个月的不同任务后我才回来研究这个项目:
=IF(MONTH(E1)>10,AND((DATE(YEAR(E1),11,1+7*1)-WEEKDAY((DATE(YEAR(E1),11,8-1))))<E1,E1<(DATE(YEAR(E1)+1,3,1+14*1)-WEEKDAY((DATE(YEAR(E1)+1,3,8-1))))),AND(DATE(YEAR((DATE(YEAR(E1),11,1+7*1)-WEEKDAY((DATE(YEAR(E1),11,8-1))))-1),MONTH((DATE(YEAR(E1),11,1+7*1)-WEEKDAY((DATE(YEAR(E1),11,8-1))))),DAY((DATE(YEAR(E1),11,1+7*1)-WEEKDAY((DATE(YEAR(E1),11,8-1)))))),E1<(DATE(YEAR(E1),3,1+14*1)-WEEKDAY((DATE(YEAR(E1),3,8-1))))))
似乎在11月的第二个星期天开始了。我现在特别沮丧。这是一个有趣的交叉点,我对计算机和布局设计非常满意。而现在突然潜水比我想象的更深入。牢记这一点,我已经开始觉得有点超出我的深度,我确信VBA可以轻松地做到这一点,但我不知道关于我的第一件事情。做什么意味着如果出现任何问题,因为有人意外删除了我无法解决的问题。
TL; DR:尝试根据E1中的动态条目命中日期的移动目标。以E1为基础,找到11月的第一个星期日和次年3月的第二个星期日(或者我想当前年度一旦我们回到1月份)
答案 0 :(得分:1)
=OR(DATE(YEAR(E1),11,15-WEEKDAY(DATE(YEAR(E1),11,1),2))<=E1,DATE(YEAR(E1),3,15-WEEKDAY(DATE(YEAR(E1),3,1),2))>=E1)
或者您可以使用TODAY()替换公式中的E1。该等式将评估为真或假