excel 把名字罗列在同一个单元格中,但由于后面工作需要,需要把名字挨个提取出来
时间:2023-02-28 22:12:44
在有些统计名单中通常会把名字罗列在同一个单元格中,但由于后面工作需要,需要把名字挨个提取出来,往往需要加班加点才能完成。
今天结合工作实际,介绍两种方法。
以图1为例子:
(图1)
如图1,要将各部门的人员从单元格中分离出来。
一、分列法
分列法属于“简单直接粗暴”的办法,但是在分列前要注意是否有合并单元格,图1中“镇站所名单”是合并单元格,所以不能直接进行分列操作,否则会出现图2的提示框。
(图2)
所以,在分列前需要把合并单元格所在行删除或者取消合并。之后就可以进行分列操作了:
1.选中C列→在数据选项卡中选择【分列】
2.在弹出的“文本分列向导”中选择“分隔符号”→单击“下一步”→在“分隔符号”的“其他”中输入“、”→单击“下一步”→单击“完成”。
如图3所示:
(图3)
3.对提取出来的名字再做整理,就可以了。
二、函数法
用宏表函数Evaluate也可以较好地解决以上问题。
Evaluate函数语法结构是:
Evaluate(formula_text)
该函数主要表示“对文本表示的一个公式或表达式进行求值”,formula_text是一个以文本形式表示待求值的表达式。
由于宏表函数不能直接使用,必须对其进行定义。
1.按Ctrl+F3唤出“名称管理器”
2.在“名称”中输入“tq”,在引用位置输入:
=EVALUATE("{"""&SUBSTITUTE(Sheet1!$C3,"、",""",""")&"""}")
如图4所示:
(图4)
【公式讲解】
名字都是用顿号(、)来间隔,用Substitute函数将顿号替换成英文状态下的引号(”),将文本字符串转换成文本数组。如C5单元格转化后相当于形成以内存下数组:
{"周二五","韦六八","吴一二","小明"}
3.在F3单元格中输入
=Index(tq,column(a1))
4.填充之后去掉错误值,就可能得到分离出来的名字了。
如图5所示:
(图5)
两种方法各有优劣,请大家结合自身实际来使用。^-^
【温馨提示】
宏表函数不能存于后缀为xlsx的表格中,建议用xls或者xlsm表格。