excel 计算年资

一般都是按照dateif计算年资,现在我需要在其中加入一个在当时进入月份如果是15号以前进公司,一律按照当月1号进入公司,15号以后进入公司一律按照下月一号进入公司。
算法上怎么实现?
例如张三 2001-7-14日进入公司 需要转换成2001-7-1
李四 2001-7-15进入公司 需要转换成2001-8-1

方法:

1.新建一张表格,如图所示,在表中输入姓名、上班时间、工龄、医疗补助、工龄工资、基本工资、总工资这些项目,在姓名中输入员工姓名,上班时间中输入一些时间,如图所示。

2.选择C3单元格,输入函数=DATEDIF(B3,TODAY(),"y"),回车,然后用填充手柄把其他单元格也填上,就可以看到工龄了。

3.现在来输入医疗补助,医疗补助是工龄每半年加50元,最高300元,选择D3单元格,输入函数=MIN(SUM(IF(DATEDIF(B3,TODAY(),"ym")>=6,50,0),DATEDIF(B3,TODAY(),"y")*100),300),回车,然后用填充手柄把其他单元格也填上,就可以看到医疗补助了。

4.现在来输入工龄工资,医疗补助是工龄每半年加30元,满一年加50元,最高500元,选择E3单元格,输入函数=MIN(SUM(IF(DATEDIF(B3,TODAY(),"ym")>=6,30,0),DATEDIF(B3,TODAY(),"y")*50),500),回车,然后用填充手柄把其他单元格也填上,就可以看到工龄工资了。

5.在F列中输入基本工资2500元,选择G3单元格,输入函数=SUM(D3:F3),回车,然后用填充手柄把其他单元格也填上,就可以看到总工资了。现在表格就制作好了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-19
加入一列A,列A输入实际进入公司日期,在计算年资的引用单元格B列中使用IF函数将时间进行转换。假设A列第一个单元格位置为“D1",那么你在B列第一个计算引用单元格中输入公式“=DATE(YEAR(D1),IF(DAY(D1)>15,MONTH(D1)+1,MONTH(D1)),1)”就可以了。
经过我试验,完全能够达到你的要求。
不知道我说的意思你明白没。
第2个回答  2010-06-19
假设日期在A1,输入以下函数即可实现。并且在12月15日或以后入公司的会自动显示为下一年的1月1日
=IF(AND(DAY(A1)>14,MONTH(A1)=12),YEAR(A1)+1&"-"&1&"-"&1,IF(AND(DAY(A1)>14,MONTH(A1)<12),YEAR(A1)&"-"&MONTH(A1)+1&"-"&1,YEAR(A1)&"-"&MONTH(A1)&"-"&1))
第3个回答  推荐于2016-04-14
假如日期在A列第一行,加入一列B,将B格式设为日期,在B列第一行输入以下公式

=IF(DAY(A1)>14,YEAR(A1)&"-"&MONTH(A1)+1&"-"&1,YEAR(A1)&"-"&MONTH(A1)&"-"&1)

就可以转化了本回答被提问者采纳
第4个回答  2010-06-19
入职日期中A1,在B1输入公式:
=IF(DAY(A1)<15,DATEDIF(A1-DAY(A1)+1,NOW(),"Y"),DATEDIF(DATE(YEAR(A1),MONTH(A1)+1,1),NOW(),"Y"))