首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

都是套路!如果非要用公式按分隔符拆分 Excel 单元格,那就是它

公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!

点击上方蓝字 --> 点击“...”--> 选择“设为星标

前阵子带大家复习了按分隔符拆分单元格的各种方式,涵盖了快捷键、分列、PQ 等多种解法。

之所以当时没用公式,是因为公式有点难度,若非必须,完全有更简单的方法可替代。但有宝子留言说就是需要公式解法,别的就是不行不行。

那今天我就教一个分列的套路公式。觉得理解太难的话,保存套用就行。

案例:

将下图 1 中 A 列的食品按分隔符拆分,结果填写到右侧的单元格中。

效果如下图 2 所示。

解决方案:

1. 在 B2 单元格中输入以下公式:

=TRIM(MID(SUBSTITUTE($A2,"/",REPT(" ",50)),COLUMN(A1)*50-49,50))

2. 向右向下拖动,复制公式。

公式释义:

REPT(" ",50):生成 50 个连续的空格;因为要拆分出来的每段字符数都不超过 50,所以这个数值足够大了;

SUBSTITUTE($A2,"/",...):将 A2 单元格中的所有“/”都替换成 50 个空格,也就是说,单元格中的分隔符由原来的“/”变成了 50 个空格;

MID(...,COLUMN(A1)*50-49,50):

mid 函数的作用是返回文本字符串中从指定位置开始的特定数目的字符;

语法为 mid(要提取字符的文本字符串,要提取的第一个字符的位置,从文本中返回字符的个数);

第二个参数中的 COLUMN(A1) 返回 A1 列的列号,即 1;COLUMN(A1)*50-49 的结果就变成 1*50-49=1;也就是从第 1 个字符开始提取;随着公式向右拖动,COLUMN(A1) 的结果会依次递增,于是变成 2*50-49=51;3*50-49=101;因为需要提取的每段字符都不超过 50 个,所以按每 50 为一个分界点足够将每段字符提取出来了;

第三个参数为 50,表示总共提取 50 个字符;

至此,已经将每段字符都按分隔符提取到不同单元格中了,只是因字符长短不同,前后会有数量不等的空格;

所以最后在外面包一个 TRIM 函数,去除字符前后的所有空格

  • 发表于:
  • 原文链接https://page.om.qq.com/page/O7WAqbsHIAbBIl0W6brq1ZuA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券