单元格内容分列(表格如何分列数据)
在Excel中会经常会将单元格内的数据分割到多列中,我们可以用excel的分列功能。实际上,用公式也能实现分列的功能。
一、固定宽度分列
如下图,需要将A1单元格按照每1个字符分列,A5单元格按每2个字符分列。
①在A2单元格输入=MID($A$1,COLUMN(A1),1),右拉实现按照每1个字符分列
②在A6单元格输入=MID($A$5,COLUMN(A1)*2-1,2),右拉实现按每2个字符分列
※在此介绍一下column函数:得到指定单元格的列号
语法:Column(单元格引用)
例子:=COLUMN(b1) 结果是2,即该单元格在第2列
回到文章开始时的例子:
例①中,在A2单元格输入=MID($A$1,COLUMN(A1),1),右拉B2单元格变为=MID($A$1,COLUMN(b1),1),此时,A2单元格的值实际为=MID($A$1,1,1),即是从A1取第一个字符,得到A。
B2单元格实际为=MID($A$1,2,1),即是从A1单元格第二个字符开始取1个字符,得到B,以此类推,得到C、D、E、F、G、H
例②中,在A6单元格输入=MID($A$5,COLUMN(A1)*2-1,2),A6实际为=MID($A$5,1*2-1,2),即从A5单元格第一个字符开始取2个字符,得到“安徽”。
右拉,B6单元格变为=MID($A$5,COLUMN(B1)*2-1,2),实际值为=MID($A$5,2*2-1,2),即从A5单元格第3个字符开始取2个字符,得到“北京”,以此类推~~~
▲在A2单元格输入=MID($A$1,COLUMN(A1),1)时,用的是绝对引用:$A$1,否则直接用A1,右拉B2单元格变为=MID(B1,COLUMN(B1),1),无法实现我们想要的结果。
二、特定分隔符分列
比如下图中,以“、”为分隔号,对数据进行分列
我们可以用TRIM MID SUBSTITUTE REPT的组合公式:
在B2中输入:
=TRIM(MID(SUBSTITUTE($A2,"、",REPT(" ",20)),20*COLUMN(A1)-19,20))
【解析】
1、利用SUBSTITUTE REPT组合,将分隔符顿号“、”替换成固定长度的空格,将各“列”数据距离拉大,结果如下:
"枇杷叶 20个空格苦杏仁 20个空格川贝母 20个空格大黄 20个空格"
2、MID函数取出含有空格的各“列”的值
第1段从第20*1-19即第1个字符起,取20个字符:
{"枇杷叶_________________"} ——》"枇杷叶 17个空格"
第2段从第20*2-19即第21个字符起,取20个字符:
{"___苦杏仁______________"} ——》"3个空格 苦杏仁 14个空格"
第3段从第41个字符起,取20个字符:
{"______川贝母___________"} ——》"6个空格 川贝母 11个空格"
第4段从61个字符起,取20个字符:
{"_________大黄_________"} ——》"9个空格 大黄 9个空格"
这样,得到每一列数据和“空格”的组合文本。
3、利用TRIM函数将空格去掉。
※本例涉及的有关函数
①Substitute函数
简介:用新文本替换指定内容的旧文本
语法:Substitute(原始文本, 旧文本, 新文本, 替换第几个旧文本)
1. 原始文本 可以是某一个具体文本,也可以是某一个单元格
2. 旧文本 是指原始文本中将被替换掉的文本
3. 新文本 是指用来替换旧文本的文本
4. 替换第几个旧文本 是指新文本将替换第几次出现的旧文本,如果省略,则替换所有旧文本
示例:=SUBSTITUTE("中华人民共和国万岁","中华人民共和国","世界人民大团结") 结果为:世界人民大团结万岁
②Trim函数
简介:清除文本中的所有空格(单词之间的单个空格除外)
语法:Trim(文本)
1. 文本 需要清除空格的文本, 也可以是某一个单元格
结果: 将得到一个新的文本
注意:在文本中,首字符之前以及最末端字符之后的空格将全部清除
如果字符之间有连续多个空格,则保留一个空格
③rept函数:将文本重复一定次数
语法:REPT(text,number_times).
text:表示需要重复显示的文本
number_times:表示指定文本重复显示的次数
示例:
公式 =REPT("-",10)
说明 显示短划线 (-) 10 次。
结果 ----------