前不久有读者问我如何将一个单元格中的内容拆分到多个单元格中。如果要拆分的位置有规律,比如是空格或其他分隔符,那么很好办,分列。
今天我要教分列这个案例主要是为了带大家温习一个函数,是的温习,大部分函数我都写过,你们需要的可以查找下历史记录。
这个函数也可以用来拆分单元格,而且用法很巧妙,需要一点空间想象,这是我今天写这个案例的主要知识点。
案例:
将下图 1 中 B 列的水果拆分成不同的列,效果如下图 2 所示。
解决方案 1:分列
像这种分隔比较有规律的单元格拆分,用分列是最方便的。
1. 选中 B 列 --> 选择菜单栏的“数据”-->“分列”
2. 在弹出的对话框中选择“分隔符号”--> 点击“下一步”
4. 在下一个对话框中保留默认的目标区域 --> 点击“完成”
5. 调整格式,合并表头
分列是很简单,所以我今天的重点主要是借助分列这个案例讲解公式。没想到吧?用公式也能分列。
解决方案 2:公式
1. 在 C2 单元格中输入以下公式 --> 向右向下拖动公式:
=TRIM(MID(SUBSTITUTE($B2,"/",REPT(" ",20)),COLUMN(A1)*20-19,20))
公式释义:
SUBSTITUTE($B2,"/",REPT(" ",20)):将 B2 单元格中的“/”符号替换成 20 个空格;
REPT(" ",20):将空格重复 20 次,即 20 个空格;
为什么是 20 个空格呢?因为纵观 B 列数据,最长的单元格也不超过 20 个字符,所以够用了;
这 20 个空格仿佛就是一个容器,每个容器中装着需要分隔的一段内容;下面两张图就是选中 substitute 公式后按 F9,显示的计算结果;
接下来要做的事,就是从每个容器中取出内容,填入不同的单元格中;
MID(...,COLUMN(A1)*20-19,20)):在上述字段中提取部分值,提取的起点为 a1 的列值 1*20-19=1,一共提取 20 个字符,也就是提取第一个“容器”中的所有内容;当向右拖动公式的时候,列值会递增,起点就变成 2*20-19=21,也就是提取第二个“容器”中的内容;
TRIM(...):前面提取出来的值带有空格,外面包上 trim 函数可以去除所有空格
2. 将公式区域在原地复制粘贴为值
3. 删除 B 列、调整格式、添加表头
领取专属 10元无门槛券
私享最新 技术干货