二维码 购物车
部落窝在线教育欢迎您!

将年月形式的工龄转成月数,用啥公式比较简单?

 

作者:老菜鸟来源:部落窝教育发布时间:2023-07-25 16:40:49点击:770

分享到:
0
收藏    收藏人气:0人
版权说明: 原创作品,转载必须注明来自www.itblw.com(部落窝教育)和原作者。
编按:

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

 

要求:把工龄xx月换成以月为单位的数量。没有入职日期。

 

 

好像很简单,年数*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,后半部分提取月数。

为了满足只有年和只有月的情况,公式用了4IFERROR函数。

 

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)

 

 

公式解析:

颠覆性思路——把含月的工龄,如411个月,的月份计算“4*12+11”变成带分数计算“(4 11/12*12;整年的计算保持不变。

①首先用{"","0"}&F2得到一个新数组。

 

 

②用SUBSTITUTE将“年”字替换成空格。

 

 

③继续用SUBSTITUTE将“个月”替换成/12

 

 

④将上一步得到的数组*12,得到如下结果。

 

 

这一步包含三种格式的数据计算。

首先是带分数计算。如“4 11/12”“0 8/12”,整数+空格+分数,它们是带分数,*12分别得到月份598

其次是纯分数表示的日期计算。如“3/12”,被默认为日期,*12得到一个较大的数539964

最后是文本计算。如“0 4 11/12”“0 5”*12会返回错误值。

 

⑤用LOOKUP在每行中查找一个极大的数,得到不为错误值的最右侧的一个数。LOOKUP查找规则见文末推荐。

 

不得不说这个思路真不是一般人能想到的。

碰出你的火花了吗?欢迎留言分享。

 

本文配套的练习课件请加入QQ群:902294808下载。

Excel高手,快速提升工作效率,部落窝教育Excel精品好课任你选择

扫下方二维码关注公众号,可随时随地学习Excel

IMG_256

相关推荐:

Excel 365新函数:TEXTBEFORE和TEXTAFTER

LOOKUP查找规则:一文讲透LOOKUP二分查找

从含有多个数字的文本中提取特定数字的方法

Excel跑道图表——弧形的条形图

版权申明:

本文作者老菜鸟;部落窝教育享有稿件专有使用权。若需转载请联系部落窝教育。