excel学习库

excel表格_excel函数公式大全_execl从入门到精通

用Excel函数造一个万能提取函数

非VBA,用Excel函数造一个自己的函数,如同编程,你想过吗?他可以提取汉字、字母、数值汇总成任意指定的字符!

01 | 提取所有数值

正如你所见,我们只需要输入 =SuperGet(A4,"sz")

这里,我们 sz 就是shuzhi 的首字母!

就可以提取文本中的全部数值,并且利用365的数组功能自动扩展功能,一次搞定!

Excel办公实战 一起学习Excel,0基础、进阶、高级图文动画教程!技巧,函数,技巧,VBA,可视化图表,PBI!视频教程、免费模板、精英培训!VLOOKUP系列教程! 1113篇原创内容 -->

公众号

02 | 批量提取字母

有了上面的经验,这里我们只需要替换成zimu的 首字母 zm 即可!

=SuperGet(A5,"zm")

现在明白他为什么交SuperGet了吧!

03 | 提取全部汉字

提取全部汉字,你可能想象不到,我们不借助VBA也可以实现吧!

这里如果你使用的是中文的符号,也会被提取,但是这点也是可以优化的!

=SuperGet(A4,"hz")

好了,常用的三种提取我们就讲完了,但是这还没结束,我们还可以自己定义想提取的任意字符!

04 | 自定义任意提取

我们只需要在第二参数指定你要提取的字符即可!比如我们先提取数值+cm或者CM,那么可以写成下面这样。其他同理!

=SuperGet(A5,"-0.123456789cmCM")

怎么样?还是很强的吧,但是我们说了,不需要使用VBA,Excel自己的函数就能造一个这样的万能提取函数!

下面是函数写法:有点长

=LAMBDA(y,x,LET(  a,MID(y,ROW(INDIRECT("1:"&LEN(y))),1),  b, CONCAT(      IF(x="hz",IF(LEN(a)<>LENB(a),a," "),       IF(x="zm",IF((UPPER(a)>="A")*(UPPER(a)<="Z"),a," "),       IF(x="sz",IF(ISNUMBER(FIND(a,-1/17)),a,""),      IF(ISNUMBER(FIND(a,x)),a," ")))) ), c,LEN(TRIM(b))-LEN(SUBSTITUTE(TRIM(b)," ",""))+1,  d,SUBSTITUTE(TRIM(b)," ",REPT(" ",99)),  e,TRANSPOSE(TRIM(MID(d,99*ROW(INDIRECT("1:"&c))-98,99))),e))

需要版本支持LAMBDA、LET和CONCAT三个新函数!推荐加入预览的365版本使用!

如果使用-直接通过定义名称,后续调用!

当然你也可以在上面长长的公式尾巴加上(A2,"hz")直接调用!

好了,今天的内容就到这里,前面我们分享过新增的方式,都可以编程了,今天算是一次事件,随着版本迭代,将会有很多以前不敢想的功能都可以通过函数直接完成!

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接