分享

将4年11个月转成月数,用啥公式简单?当心思路越简单公式越长!

 Excel教程平台 2023-07-26 发布于四川

编按:


把年月数变成月数,很简单。但只有脑回路大的人才可能写出更简单的公式。通常,思路越简单公式越长。案例中巧用RIGHTB提取位于双字节后,字节变化幅度在1以内的单字节数据的思路大家可以多多借鉴。


要求:把工龄x年x月换成以月为单位的数量。没有入职日期。
好像很简单,年数*12+月数就是结果。各位可写出公式后阅读,看看能否碰出火花来。

1.老函数+最简单思路



=IFERROR(LEFT(F2,FIND("年",F2)-1)*12,0)+IFERROR(MID(F2,IFERROR(FIND("年",F2)+1,1),FIND("个",F2)-IFERROR(FIND("年",F2)+1,1)),0)
公式解析:
最简单思路——月数位于“年”“个”之间。
前半部分提取年数再*12,后半部分提取月数。
为了满足只有年和只有月的情况,公式用了4次IFERROR函数。
扫码加入学习微信群,下载Excel课件,同步操作练习。

2.老函数+转个弯思路



=IFERROR(LEFT(F2,FIND("年",F2)-1)*12,0)+IFERROR(--RIGHTB(LEFT(F2,LEN(F2)-2),2),)
公式解析:
转个弯思路——去掉最后两字,月数位于双字节文字后,在最右的2字节内,字节幅度变化在1以内。
LEFT(F2,LEN(F2)-2)把最右边两个字去掉,再用RIGHTB取右边的两个字节就得到了月数。
附送一个新函数用转弯思路的公式:
=TEXTBEFORE(F2,"年",,,,0)*12+RIGHTB(TEXTBEFORE(F2,"个",,,,0),2)

3.颠覆性思路



=LOOKUP(9^9,SUBSTITUTE(SUBSTITUTE({"","0年"}&F2,"年"," "),"个月","/12")*12)
公式解析:
颠覆性思路——把含月的工龄,如4年11个月,的月份计算“4*12+11”变成带分数计算“(4 11/12)*12;整年的计算保持不变。
①首先用{"","0年"}&F2得到一个新数组。
②用SUBSTITUTE将“年”字替换成空格。
③继续用SUBSTITUTE将“个月”替换成/12。
④将上一步得到的数组*12,得到如下结果。
这一步包含三种格式的数据计算。
首先是带分数计算。如“4 11/12”“0 8/12”,整数+空格+分数,它们是带分数,*12分别得到月份59、8。
其次是纯分数表示的日期计算。如“3/12”,被默认为日期,*12得到一个较大的数539964。
最后是文本计算。如“0 4 11/12”“0 5”,*12会返回错误值。
⑤用LOOKUP在每行中查找一个极大的数,得到不为错误值的最右侧的一个数。LOOKUP查找规则见文末推荐。
不得不说这个思路真不是一般人能想到的。
碰出你的火花了吗?欢迎留言分享。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多