我正在尝试做以下事情。
我有两个日期参数,包括开始日期和结束日期。
我想在开始日期默认的是从您运行报告之日起的上个月的第一个星期一。
结束日期我希望在运行报告之日的当前月份的第一个星期之前默认日期。
所以如果我今天运行它,那么11月的第一个星期一是03/11/14。 12月的第一个星期一的前一天是2014年11月30日,所以这将是结束日期。 另一个例子,如果我在明年1月的某个时间运行报告 - 它将默认开始日期 - 2014年1月12日(12月的第一个星期一),结束日期将是4/1/15(第一个星期一的前一天)月)
希望以上有意义吗?
答案 0 :(得分:1)
我使用长IIF()表达式来实现您的目标。将下面的表达式放入参数默认值。
从今天开始的第一个月的第一个星期:
=IIF(Weekday(DateAdd("m", -1, DateSerial(Year(Now()), Month(Now()), 1)))=2,
DateAdd("m", -1, DateSerial(Year(Now()), Month(Now()), 1)),
DateAdd("d",9-Weekday(DateAdd("m", -1, DateSerial(Year(Now()), Month(Now()), 1))),DateAdd("m", -1, DateSerial(Year(Now()), Month(Now()), 1))))
当前月份第一个星期一之前的那一天:
=IIF(Weekday(DateSerial(Year(Now()), Month(Now()), 1))=2,
DateAdd("d",-1,DateSerial(Year(Now()), Month(Now()), 1)),
DateAdd("d",8-Weekday(DateSerial(Year(Now()), Month(Now()), 1)),DateSerial(Year(Now()), Month(Now()), 1)))
上述表达已经过测试。由于分数较低,我目前无法与您分享截图。