今日一位搞财务的mm问我excel核算工龄的问题,我想了想,还真不会啊。搞测试的,写case,报进度,计算bug一般都是用excel,还真没弄过核算工龄日期生日之类的。
她的要求是:
居然不会,想了半响想到2个方案:1、用perl写个脚本给她;2、把信息导入数据库,用select 语句查询再把结果导出;
后来仔细想想,这种不符合她的要求,人家要去用excel解决。所以,我就开始查找excel function,关于日期处理的。
在一般的编程言语与数据库中,都有获得当时日期与字符串处理的函数,所以我就按照这个思路查找。(她没要求核算出3.5年工龄这样的,只要求给出整年整月的)
excel获得当时日期的函数是:
today() 获得体系日期 显现:
1/2/2013
now() 获得体系日期和当时时刻
1/2/2013 12:13
因为不需要体系时刻,所以就选today()
时刻处理函数:datedif(start_date,end_date,unit)
DATEDIF函数的start_date和end_date参数就是起止日期,而unit则是用户期望DATEDIF函数回来的数值是以什么为单位的。Unit单位有六种,
分别是: Y:整年 M:整月 D:整天 YM:不到一年的月数 YD:不到一年的天数 MD:不到一个月的天数
注意:1.DATEDIF函数输入Unit参数时一定要加上双引号。2.start_date
例子:
DATEDIF(2001-09-01,2013-01-01,Y) 11
DATEDIF(2001-09-01,2013-01-01,YM) 4
DATEDIF(2001-09-01,2013-01-01,MD) 0
DATEDIF(2001-09-01,2013-01-01,YD) 122
剩余的就easy了,需要用到是
excel连接符
获得 DATEDIF(A2,B2,Y)-DATEDIF(A2,B2,YM)-DATEDIF(A2,B2,MD) 整年 整月 整日 的工
额定考虑:
如果是身份证号提取出生日期呢?
首先判断身份证号是不是18位,len(str)
=if(len(str)=18,true,false)
截取出生年mid(A2,7,4) 从A2单元格第七位算起,截取4个(7、8、9、10)
即可加入考研、考公考编、四六级、计算机等级考试、教师编等【免费网课网盘群组】
易和谐资料优先在群组内补发
或者夸克APP内搜索群号:970062162
暂无评论内容