找回密码
 立即注册
搜索
查看: 212|回复: 7

excel日期运算问题

[复制链接]

56

主题

211

回帖

373

积分

中级会员

积分
373
发表于 2007-9-13 23:57:19 | 显示全部楼层 |阅读模式
弱弱问一下,2007-1-1到2007-9-1间有8个月,这个8要如何算出来

1546

主题

1万

回帖

1万

积分

管理员

积分
17171
发表于 2007-9-14 00:23:48 | 显示全部楼层
=(YEAR(B1)-YEAR(A1))*12+MONTH(B1)-MONTH(A1)
C1单元格为常规格式。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

43

主题

546

回帖

831

积分

金牌会员

积分
831
发表于 2007-9-14 23:33:08 | 显示全部楼层
=DATEDIF("start_date","end_date","ym")

for example:
=DATEDIF("2007-01-01","2007-09-01","ym")

[ 本帖最后由 hzy 于 2007-9-14 23:35 编辑 ]
回复

使用道具 举报

623

主题

8454

回帖

7741

积分

版主

弱弱的海豚

积分
7741
发表于 2007-9-15 10:18:23 | 显示全部楼层
原帖由 hzy 于 2007-9-14 23:33 发表
for example:
=DATEDIF("2007-01-01","2007-09-01","ym")


后面是YM的, 就表示不记年.,,只计算月份差值.
=DATEDIF("2007-01-01","2007-09-01","ym")    这个值是8
=DATEDIF("2006-01-01","2007-09-01","ym")    这个值也是8

如果后面是M,就表示用月份来计算差值.
=DATEDIF("2007-01-01","2007-09-01","m")    这个值是8
=DATEDIF("2006-01-01","2007-09-01","m")    这个值是20

这个后面还可以跟Y,或是M,或是D分别来计算年或月或日的差值..



其实好多东西在F1里面都有的:
================================下面是DATEDIF的详细介绍================================

DATEDIF
参阅

计算两个日期之间的天数、月数或年数。提供此函数是为了与 Lotus 1-2-3 兼容。

语法

DATEDIF(start_date,end_date,unit)

Start_date   为一个日期,它代表时间段内的第一个日期或起始日期。日期有多种输入方法:带引号的文本串(例如 "2001/1/30")、系列数(例如,如果使用 1900 日期系统则 36921 代表 2001 年 1 月 30 日)或其他公式或函数的结果(例如,DATEVALUE("2001/1/30"))。有关日期系列数的详细信息,请参阅 NOW。

End_date   为一个日期,它代表时间段内的最后一个日期或结束日期。

Unit   为所需信息的返回类型。

Unit 返回
"Y" 时间段中的整年数。
"M" 时间段中的整月数。
"D" 时间段中的天数。
"MD" start_date 与 end_date 日期中天数的差。忽略日期中的月和年。
"YM" start_date 与 end_date 日期中月数的差。忽略日期中的日和年。
"YD" start_date 与 end_date 日期中天数的差。忽略日期中的年。


说明

Microsoft Excel 按顺序的系列数保存日期,这样就可以对其进行计算。如果工作簿使用 1900 日期系统,则 Excel 会将 1900 年 1 月 1 日保存为系列数 1。而如果工作簿使用 1904 日期系统,则 Excel 会将 1904 年 1 月 1 日保存为系列数 0,(而将 1904 年 1 月 2 日保存为系列数 1)。例如,在 1900 日期系统中 Excel 将 1998 年 1 月 1 日保存为系列数 35796,因为该日期距离 1900 年 1 月 1 日为 35795 天。请查阅 Microsoft Excel 如何存储日期和时间。


Excel for Windows 和 Excel for Macintosh 使用不同的默认日期系统。有关详细信息,请参阅 NOW。
示例

DATEDIF("2001/1/1","2003/1/1","Y") 等于 2,即时间段中有两个整年。

DATEDIF("2001/6/1","2002/8/15","D") 等于 440,即在 2001 年 6 月 1 日和 2002 年 8 月 15 日之间有 440 天。

DATEDIF("2001/6/1","2002/8/15","YD") 等于 75,即在 6 月 1 日与 8 月 15 日之间有 75 天,忽略日期中的年。

DATEDIF("2001/6/1","2002/8/15","MD") 等于 14,即开始日期 1 和结束日期 15 之间的差,忽略日期中的年和月。
其实我本来什么都没有....


俺是多尔的豌豆.. 俺是墙根...  俺还有那乌黑亮丽的长发...



上得了厅堂,下得了厨房,写得了代码,查得出异常,杀得了木马,翻得了围墙,开得起好车,买得起新房,斗得过二奶,打得过流氓
回复

使用道具 举报

12

主题

374

回帖

510

积分

高级会员

积分
510
发表于 2007-9-15 11:55:17 | 显示全部楼层
学习,这个真的不错,呵呵
回复

使用道具 举报

3

主题

66

回帖

92

积分

注册会员

积分
92
发表于 2007-9-15 13:36:25 | 显示全部楼层
谢谢,学习中
回复

使用道具 举报

56

主题

211

回帖

373

积分

中级会员

积分
373
 楼主| 发表于 2007-9-16 01:58:22 | 显示全部楼层
原帖由 excel 于 2007-9-14 00:23 发表
=(YEAR(B1)-YEAR(A1))*12+MONTH(B1)-MONTH(A1)
C1单元格为常规格式。

谢谢!我改造了一下:=(YEAR(B6)-YEAR(B10))*12+MONTH(B6)-MONTH(B10)-IF(DAY(B6)>DAY(B10),0,1)
回复

使用道具 举报

56

主题

211

回帖

373

积分

中级会员

积分
373
 楼主| 发表于 2007-9-16 02:08:27 | 显示全部楼层
怎么我的EXCEL2003没有DATEDIF函数?但这个函数可以用。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-21 19:41 , Processed in 0.089016 second(s), 24 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表