分享

这个按指定间隔符,轻松提取数据的神级公式,你知道吗?

 惠阳居士 2017-11-15

什么意思呢,举个例子……

如下图所示,A列是数据源,每个单元格的数据以符号“/”作为间隔组合在一起,例如:“看见/星光/Excel”。


1


提取第一个间隔符'/'前的数据,如下图所示的B列计算结果。

公式:

=LEFT(A2,FIND('/',A2)-1)

FIND函数发现'/'在A2单元格中首次出现的位置,然后使用LEFT函数从左向右提取该长度的字符,即为结果。

2


 提取最后一个间隔符'/'后的数据。如下图所示的B列计算结果。

这个问题和第一个问题刚好相反……

公式:

=TRIM(RIGHT(SUBSTITUTE(A2,'/',REPT('',100)),100))

SUBSTITUTE(A2,'/',REPT('',100)),这部分公式将A2中的'/'替换为100个空格,然后RIGHT函数从右边提取100个字符,这100个字符必然包括了最后一个'/'后的数据以及大部分的空格,因此最后用TRIM函数清除空格即为结果。

3


提取指定位数间隔符之间的数据,例如提取第2个'/'和第3个'/'之间的数据。

公式:

=TRIM(MID(SUBSTITUTE(A2,'/',REPT('',100)),100,100))

和第2个公式有些相似,依然先使用SUBSTITUTE函数,将A2单元格中的'/'替换为100个空格,这样就将不同的值划分到了由空格间隔而成的多个小房子里,再使用MID函数从指定区段取值,最后使用TRIM函数消除空格。

4


按指定间隔符将数据拆分到多个单元格,类似于【分列】功能。

B2输入以下公式,向右向下复制填充至B2:E5区域,即可得出结果:

=TRIM(MID(SUBSTITUTE($A2,'/',REPT('',100)),COLUMN(A1)*100-99,100))

该公式和第3个公式类似,只是使用COLUMN(A1)*100-99取动态区间,随着公式的向右拖动,依次提取第1~101~201个字符起的100个字符结果,最后依然使用TRIM函数清理空格。

5

小贴士

TRIM+MID+SUBSTITUTE是一个非常经典的字符串处理函数套路,尤其擅长与处理间隔符的问题,如果不能一次性掌握,也建议收藏备用哦~


数据分析就用Excel

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多