卢子看完的第一想法就是用LEFT、FIND、MID、IFERROR等函数的组合分别提取年、月再运算,那就复杂了。 后来仔细一想,可以将几年几月的形式,转变成文本表达式,再通过宏表函数计算,就容易多了。 选择K2,点公式,定义名称,名称写计算,引用下面的公式,确定。
在K2输入公式,下拉就可以。
以上就是思路,现在想一下,怎么将几年几月转换成文本表达式? 第一步,一年有12个月,也就是将年替换成*12+。不过这样替换完,会出现一个小小的问题,纯年的时候,会出现1*12+,多了一个+,后面没有数字,会出错。再看一个规则,011=11,11+0=11,也就是说可以将年替换成*12+0。多一个0,结果不变,但却可以正常计算。当然,也可以用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)
|