分享

哇,目瞪口呆,这个新的Excel公式写法太棒了!

 Excel不加班 2023-06-02 发布于广东

VIP学员的问题,怎么将几年几月的形式转换成月?

卢子看完的第一想法就是用LEFT、FIND、MID、IFERROR等函数的组合分别提取年、月再运算,那就复杂了。

后来仔细一想,可以将几年几月的形式,转变成文本表达式,再通过宏表函数计算,就容易多了。

选择K2,点公式,定义名称,名称写计算,引用下面的公式,确定。
=EVALUATE($J2)

在K2输入公式,下拉就可以。

=计算

以上就是思路,现在想一下,怎么将几年几月转换成文本表达式?

第一步,一年有12个月,也就是替换成*12+

不过这样替换完,会出现一个小小的问题,纯年的时候,会出现1*12+,多了一个+,后面没有数字,会出错。

再看一个规则,011=11,11+0=11,也就是说可以将替换成*12+0。多一个0,结果不变,但却可以正常计算。

替换最简单的方法,就是按Ctrl+H。

第二步,将个月这2个字替换成

当然,也可以用SUBSTITUTE函数进行2次替换。
=SUBSTITUTE(SUBSTITUTE(Sheet1!$H2,"年","*12+0"),"个月",)

当然,不用这个辅助列也可以。

将名称定义为月,输入下面的公式,定义完名称,就可以在单元格输入=月,完成转换。
=EVALUATE(SUBSTITUTE(SUBSTITUTE(Sheet1!$H2,"年","*12+0"),"个月",))

最后,看下群内另一位高手提供的公式,参考下。
=SUBSTITUTE(REPT("0 ",ISERR(FIND("年",H2)))&SUBSTITUTE(H2,"年"," "),"个月","/12")*12

名称管理器平常用得很少,不过有些案例如果用得好,确实可以让公式更加简洁易懂。

作者:卢子,清华畅销书作者,《Excel效率手册 早做完,不加班》系列丛书创始人,个人公众号:Excel不加班(ID:Excelbujiaban)

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多