word中有没有象excel中datedif()计算日期的涵数
4个回答
展开全部
转载与officefans的 守柔
日期与时间域的计算
这是WORD中日期与时间域的计算方法,供参考。
1.如何用域取得上月考勤日期?
要求,2005年1月份为2004年12月份;2005年5月份为2005年4月份,即总是当前月份的上一个月的年度和月份数。
域代码为: { QUOTE { IF { DATE \@"M" }="1" "{ ={ DATE \@"YYYY" }-1 }年12月" "{ DATE \@"YYYY" }年{ ={ DATE \@"M" }-1 }月"}}
2.如何取得下月首日
域代码为: { IF { DATE \@"M" } = "12" "{ ={ DATE \@"YYYY" }+1 }年1月1日" "{ DATE \@"YYYY"}年{ ={ DATE \@"M" } +1}月1日"}
3.取得七天后的日期
域代码为: { SET YEAR { DATE \@"YYYY" } }
{ SET MONTH { DATE \@"M" } }
{ SET DAY { DATE \@"D" } }
{ IF { =OR( {=MOD({ YEAR },400) } =0,{=AND({ =MOD({ YEAR },4) } =0 ,{ =MOD({ YEAR },100) } <>0) } =1) } = 1 { SET TEMP 29 } { SET TEMP 28 } }'取得闰年2月份的最后一天
{ IF MONTH = 2 { SET X { TEMP } } { IF MONTH = 4 { SET X 30 } { IF MONTH = 6 { SET X 30 } { IF MONTH = 9 { SET X 30 } { IF MONTH = 11 { SET X 30 } { SET X 31 } } } } }}
{ SET NEXTD { = DAY +7 } }'日期+7天
{ IF { AND({ MONTH }=12,{ NEXTD }> X) } = 1 { SET YEAR { ={ YEAR }+1 } }}'如果是12月份,并且七天后的值超过最后日期的话,则进入下一年的一月份
{ IF NEXTD > X { SET MONTH {= MONTH+1 }} }
{ IF NEXTD > X { SET DAY { =NEXTD-X } } { SET DAY { NEXTD } } }
现在日期:
{ DATE \@"YYYY'年'M'月'D'日'" }
七天后的日期:
{ IF MONTH = 13 { =YEAR+1 } { YEAR } }年{ IF MONTH = 13 1 { MONTH } }月{ DAY }日
请使用ALT+F9切换域代码与域结果,或者全选SHIFT+F9进行切换。
日期如果人为调整后,请全选这些域,按下F9进行更新
测试了word域中不支持datedif(),建议还是直接插入Excel表格比较省事,让计算部分在EXCEL里做
日期与时间域的计算
这是WORD中日期与时间域的计算方法,供参考。
1.如何用域取得上月考勤日期?
要求,2005年1月份为2004年12月份;2005年5月份为2005年4月份,即总是当前月份的上一个月的年度和月份数。
域代码为: { QUOTE { IF { DATE \@"M" }="1" "{ ={ DATE \@"YYYY" }-1 }年12月" "{ DATE \@"YYYY" }年{ ={ DATE \@"M" }-1 }月"}}
2.如何取得下月首日
域代码为: { IF { DATE \@"M" } = "12" "{ ={ DATE \@"YYYY" }+1 }年1月1日" "{ DATE \@"YYYY"}年{ ={ DATE \@"M" } +1}月1日"}
3.取得七天后的日期
域代码为: { SET YEAR { DATE \@"YYYY" } }
{ SET MONTH { DATE \@"M" } }
{ SET DAY { DATE \@"D" } }
{ IF { =OR( {=MOD({ YEAR },400) } =0,{=AND({ =MOD({ YEAR },4) } =0 ,{ =MOD({ YEAR },100) } <>0) } =1) } = 1 { SET TEMP 29 } { SET TEMP 28 } }'取得闰年2月份的最后一天
{ IF MONTH = 2 { SET X { TEMP } } { IF MONTH = 4 { SET X 30 } { IF MONTH = 6 { SET X 30 } { IF MONTH = 9 { SET X 30 } { IF MONTH = 11 { SET X 30 } { SET X 31 } } } } }}
{ SET NEXTD { = DAY +7 } }'日期+7天
{ IF { AND({ MONTH }=12,{ NEXTD }> X) } = 1 { SET YEAR { ={ YEAR }+1 } }}'如果是12月份,并且七天后的值超过最后日期的话,则进入下一年的一月份
{ IF NEXTD > X { SET MONTH {= MONTH+1 }} }
{ IF NEXTD > X { SET DAY { =NEXTD-X } } { SET DAY { NEXTD } } }
现在日期:
{ DATE \@"YYYY'年'M'月'D'日'" }
七天后的日期:
{ IF MONTH = 13 { =YEAR+1 } { YEAR } }年{ IF MONTH = 13 1 { MONTH } }月{ DAY }日
请使用ALT+F9切换域代码与域结果,或者全选SHIFT+F9进行切换。
日期如果人为调整后,请全选这些域,按下F9进行更新
测试了word域中不支持datedif(),建议还是直接插入Excel表格比较省事,让计算部分在EXCEL里做
展开全部
Word没有Excel那么方便的函数
毕竟Word是排版软件,Excel才是计算软件
可以用域代码插入日期,但需要手动更新,或者用宏,那就更复杂了,还不如插入一个Excel表格呢
毕竟Word是排版软件,Excel才是计算软件
可以用域代码插入日期,但需要手动更新,或者用宏,那就更复杂了,还不如插入一个Excel表格呢
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
插入菜单中--函数--全部函数--日期--(找到DATEDIF)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
最好不要在WORD中用函数,麻烦
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询