求:使用excel函数公式求两个工龄相加?例如:5年4个月+9年11个月

求:使用excel函数公式求两个工龄相加?例如:5年4个月+9年11个月

使用excel函数公式求文本形式的工龄相加,简单好理解的就是文本提取相加。

M2单元格输入公式并向下填充,如下:

=IFERROR(MID(K2,1,FIND("年",K2)-1),0)+IFERROR(MID(L2,1,FIND("年",L2)-1),0)+ROUNDDOWN((IFERROR(MID(K2,FIND("年",K2)+1,FIND("个",K2)-FIND("年",K2)-1),0)+IFERROR(MID(L2,FIND("年",L2)+1,FIND("个",L2)-FIND("年",L2)-1),0))/12,0)&"年"&MOD((IFERROR(MID(K2,FIND("年",K2)+1,FIND("个",K2)-FIND("年",K2)-1),0)+IFERROR(MID(L2,FIND("年",L2)+1,FIND("个",L2)-FIND("年",L2)-1),0)),12)&"个月"

公式及效果图


难点:

月数相加大于等于12的,需要多计算两次。

    年数计算一次用ROUNDDOWN函数向下舍到整数;用MOD求余函数得到除以12之后剩余的月数。
    温馨提示:答案为网友推荐,仅供参考
    第1个回答  2019-09-02
    在L3中输入如下公式
    =LEFT(K2,FIND("年",K2)-1)+LEFT(K3,FIND("年",K3)-1)+INT((MID(K2,FIND("年",K2)+1,FIND("个",K2)-FIND("年",K2)-1)+MID(K3,FIND("年",K3)+1,FIND("个",K3)-FIND("年",K3)-1))/12)&"年"&MOD(MID(K2,FIND("年",K2)+1,FIND("个",K2)-FIND("年",K2)-1)+MID(K3,FIND("年",K3)+1,FIND("个",K3)-FIND("年",K3)-1),12)&"个月"
    选择L2:L3,下拉填充追问

    求解!我想要K2+L2相加得到两段时间的合计是“几年几个月”感谢~~

    第2个回答  2019-09-02
    =SUMPRODUCT(IFERROR(--MID(K2:L2,1,FIND("年",K2:L2)-1),0))+INT(SUMPRODUCT(IFERROR(--MID(SUBSTITUTE(K2:L2,"个月", ),FIND("年",K2:L2)+1,88),0))/12)&"年"&MOD(SUMPRODUCT(IFERROR(--MID(SUBSTITUTE(K2:L2,"个月", ),FIND("年",K2:L2)+1,88),0)),12)&"个月"
    第3个回答  2019-09-02
    =TEXT(INT((IF(K2="",0,LEFTB(K2,2)*12+LEFTB(MID(K2,FIND("年",K2)+1,4),2))+IF(L2="",0,LEFTB(L2,2)*12+LEFTB(MID(L2,FIND("年",L2)+1,4),2)))/12),"#年;;;")&TEXT(MOD((IF(K2="",0,LEFTB(K2,2)*12+LEFTB(MID(K2,FIND("年",K2)+1,4),2))+IF(L2="",0,LEFTB(L2,2)*12+LEFTB(MID(L2,FIND("年",L2)+1,4),2))),12),"#个月;;;")
    第4个回答  2019-08-30
    问题不难,而且是可简可复杂的,难在你没有提供数据结构,若是数据结构简单,操作起来就很简单,若是在一个单元格里如题目所说的类似:5年4个月+9年11个月,10个月+2年……
    那么问题就很复杂了
    所以,若要用EXCEL,你总得提供有行列标号的数据结构,而且要说明在哪一个单元格里要输入公式,最终的目标效果???
    否则,人家给你一个公式,你自己都不知道输入在哪里???更不知道要怎么修改套用公式了!!!!
    还请把问题说清楚……追问

    补充说明:我说想要K2+L2相加得到两段时间的合计是“几年几个月”求解!感谢帮助!

    追答

    你就没有入职的年月日之类的日期格式???这样核算工作年限、年休之类的非常方便了,你偏偏要用这些文本格式的?年?个月,对于初学者来说真是太难了,对于高手也真是秀才遇到兵的感觉啊!!!就算是M列算好了,后面的N列估计也难办法操作核算吧……

    最好找表格设计思路,若非要这样操作,M2单元格输入公式:

    =IF(OR(K2="",L2=""),K2&L2,INT((12*LEFT(K2,FIND("年",K2)-1)+SUBSTITUTE(MID(K2,FIND("年",K2)+1,4),"个月",)+12*LEFT(L2,FIND("年",L2)-1)+SUBSTITUTE(MID(L2,FIND("年",L2)+1,4),"个月",))/12)&"年"&MOD(12*LEFT(K2,FIND("年",K2)-1)+SUBSTITUTE(MID(K2,FIND("年",K2)+1,4),"个月",)+12*LEFT(L2,FIND("年",L2)-1)+SUBSTITUTE(MID(L2,FIND("年",L2)+1,4),"个月",),12)&"个月")

    复制并下拉,即可

    或者是公式:

    =IF(OR(K2="",L2=""),K2&L2,INT((LEFTB(K2,2)*12+LEFTB(MID(K2,FIND("年",K2)+1,4),2)+LEFTB(L2,2)*12+LEFTB(MID(L2,FIND("年",L2)+1,4),2))/12)&"年"&MOD(LEFTB(K2,2)*12+LEFTB(MID(K2,FIND("年",K2)+1,4),2)+LEFTB(L2,2)*12+LEFTB(MID(L2,FIND("年",L2)+1,4),2),12)&"个月")

        但是,你这样的操作实在是太晕了啊………………

                还是归到规范的数据格式来操作吧

    本回答被网友采纳
    相似回答