如何使用excel计算工龄
今天一位搞财务的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<end_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)

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义