分享

Excel公式:拆分+大小写转换 - 如何简化公式

 ExcelEasy 2024-07-30 发布于北京


今天讲一个传统Excel公式简化的问题。

有朋友在讲LET函数的视频下面留言,大意是函数很好用,可以解决自己的问题 ,但是自己的Excel版本中并没有这个函数,问应该如何简化公式。

没有LET函数,说明是较早的版本,或者是WPS。那就不能用新函数。

先来看这位朋友的公式:

就是A列中有原始数据,B列中是处理后的数据。逻辑很简单。原始数据由字母数字+空格+中文组成,需要得到空格前面的内容,然后将小写字母转大写。

这个公式其实并不复杂,

=UPPER(IFERROR(LEFT(A1,FIND(" ",A1,1)-1),A1))

这是那位朋友原来的公式。

他觉得不满意的地方是每次将公式用在其他地方,都需要修改3次单元格引用,”A1“。

有很多人认为这不是个问题。

不过也有很多人像我一样认为这个事情很烦。

这就是我们之前提过的公式的可维护性问题,可维护性太差。

LET函数可以减化这个问题。就是用一个变量名表示单元格引用,在后续公式中使用这个变量名即可。

但是较早版本的Excel中没有这个函数怎么办?

解决方案

这里我们可以借助一个Excel函数实现:FILTERXML。

以前我们介绍过这个函数(一个巧妙的Excel公式,将文本按照分隔符拆分

按照之前介绍的方法,我们使用下面的公式:

FILTERXML("<p><c>" & SUBSTITUTE(A1, " ", "</c><c>" ) & "</c></p>","//c")

这个公式将A1中的文本根据空格拆分,得到一个数组。

然后使用INDEX函数获得第一部分,

INDEX(FILTERXML("<p><c>" & SUBSTITUTE(A1, " ", "</c><c>" ) & "</c></p>","//c"),1)

然后使用UPPER完成小写到大写的转换,

=UPPER(INDEX(FILTERXML("<p><c>" & SUBSTITUTE(A1, " ", "</c><c>" ) & "</c></p>","//c"),1))

这个公式只引用了A1一次,修改起来很容易。

总结

FILTERXML函数的作用很大,在较早的版本中,它可以帮助 我们完成比较复杂的文本数据处理。结合新函数,它可以发挥更大的作用。

详情咨询客服(底部菜单-知识库-客服)

Excel+Power Query+Power Pivot+Power BI


Power Excel 知识库    按照以下方式进入知识库学习
Excel函数   底部菜单:知识库->Excel函数

自定义函数  底部菜单:知识库->自定义函数

Excel如何做  底部菜单:知识库->Excel如何做

面授培训  底部菜单:培训学习->面授培训

Excel企业应用  底部菜单:企业应用

也可以在历史文章中学习Excel,Power Query,Power Pivot,Power BI,Power Automate各种技巧。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章