送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 【置顶公众号】或者【设为星标】及时接收更新不迷路 小伙伴们好,字符串拆分始终是我们遇到的难点之一。我们学习过SUBSTITUTE函数、LOOKUP函数和FILTERXML函数等等都可以实现某些特点的字符串拆分。今天要想大家分享的这一组公式,是用来对付那些无规律的字符串拆分,并可以应用于今后类似的问题。 原题是这样子的: 怎么样,是不是有一种老虎吃天,无从下口的感觉?在2019版本及以上、365中有新版函数可以解决这类问题。如果你还不能使用新版函数,那么就一定要收藏这一篇推文了! 先来看看如何提取数字。最基本的思路就是,我们首先要定位到每一个数字最左边的那一个,然后就可以利用LOOKUP函数来提取数字了。 在单元格A6中输入公式“=IFERROR(LOOKUP(9^9,MID(A$1,SMALL(IF(ISERR(-MID("A"&A$1,ROW($1:$100),1))*ISNUMBER(-MID(A$1,ROW($1:$100),1)),ROW($1:$100)),ROW(A1)),ROW($1:$10))*1),"")”,三键回车并向下拖曳即可。 思路:
数字部分完成后我们接下来再来看看文字部分。文字部分的公式思路和数字部分是一致的,只是在公式书写上略有不同。 在单元格B6中输入公式“=IFERROR(MID(A$1,SMALL(IF(ISNUMBER(-MID("A"&A$1,ROW($1:$100),1))*ISERR(-MID(A$1,ROW($1:$100),1)),ROW($1:$100)),ROW(A1)),MATCH(,0/MID(A$1&9,SMALL(IF(ISNUMBER(-MID("A"&A$1,ROW($1:$100),1))*ISERR(-MID(A$1,ROW($1:$100),1)),ROW($1:$100)),ROW(A1))+ROW($1:$10)-1,1),)-1),"")”,三键回车并向下拖曳即可。 思路:
MATCH(,0/MID(A$1&9,SMALL(IF(ISNUMBER(-MID("A"&A$1,ROW($1:$100),1))*ISERR(-MID(A$1,ROW($1:$100),1)),ROW($1:$100)),ROW(A1))+ROW($1:$10)-1,1),)-1这部分中:
上面的部分确定了MID函数提取汉字的起始位置。下面将要确定需要提取的字符串的长度。
下面给大家提供一个彩蛋。这是一条公式完成。 在单元格D6中输入公式“=MID(LEFT($A$1,SMALL(IF(MMULT(--ISERR(-MID($A$1&1,ROW($1:$99)+{0,1},1)),{3;1})=3^(COLUMN(A1)>1),ROW($1:$99)),ROW(A1))),SUM(LEN(C$5:E5),LEN(C6),1),99)”,三键回车并向下拖曳即可。 朋友们可以自己拆解这条公式吗?有问题可以私信我哦 本期内容练习文件提取方式: 链接:https://pan.baidu.com/s/1Hv163ixqD5OBuG9KRSUkAg?pwd=o2bj 提取码:o2bj -END- 长按下方二维码关注EXCEL应用之家 面对EXCEL操作问题时不再迷茫无助 我就知道你“在看” |
|