Excel如何将给定值设置为日期范围

时间:2016-03-05 23:45:35

标签: excel vba excel-vba date

我需要为冬季时间表(10月1日至6月15日)自动设置8.45小时的工作时间,并为夏季时间表(6月16日至9月30日)设置6小时工作时间表,以便在Microsoft Excel中完成时间表。< / p>

我正在尝试的等式如下:

=IF(AND(DATE($G$1,6, DAY(15))>=(DATE($G$1-1, 10, DAY(1))));(DATE($G$1,6, DAY(15))<A8;8.45;"")

但这仍然会导致返回公式错误,但这仍然会忽略夏令时的费率值。

  • $ G $ 1是年度时间表手动输入的年份。
  • A8是当前日期。

对此等式的任何指导都将不胜感激。

最好的问候Fab

修改

感谢DirkReichel,Scott Craner,Alex Bell,Michael Uray的出色干预。

我尝试了所有建议,但有些人返回了= VALUE错误,有些人没有省略冬季时间表,从10月1日开始 - &gt;

4 个答案:

答案 0 :(得分:1)

这是正确的等式:

=IF(AND(DATE($G$1,9,30)>=A8,DATE($G$1,6,15)<=A8),6,8.45)

等式检查当前日期为A8并检查它是否随夏季时间(日期范围)而下降。如果当前日期在夏季期间,则该值返回到6,如果当前日期超出夏季期限,则返回值8.45。

感谢所有指导。

答案 1 :(得分:0)

试试这个:

=IF(AND(DATE($G$1,6,15)>=A8,DATE($G$1-1,10, 1)<=A8),8.45,6)

答案 2 :(得分:0)

取决于区域设置,您可以使用逗号&#34; ,&#34;而不是&#34; ;&#34;如下例所示:

=IF(AND(NOW()>DATEVALUE("6/15/2016"), NOW()<DATEVALUE("9/1/2016")),6,8.45)

希望这可能会有所帮助。

答案 3 :(得分:0)

以下解决方案适合您:

A1是检查的日期,公式放在B1中。 通过这种方式,您可以在工作表中下拉日期和公式列表。

=IF(AND(A1>DATE(YEAR(A1),6,15),A1<DATE(YEAR(A1),8,1)),6,8.45)

检查数据是否在YYYY-06-15和YYYY-08-01的范围内,然后将输出设置为6,或者如果不在此范围内则设置为8.45

我使用以下公式用e德语Excel版本对其进行测试,然后我将其翻译成记事本中的英文公式版本。

=WENN(UND(A1>DATUM(JAHR(A1);6;15);A1<DATUM(JAHR(A1);8;1));6;8,45)

我希望我的公式翻译在英文Excel版本中适合您。