学完这个Excel技巧后,我就不再加班了!

来自:Excel技巧精选(微信号:ExcelSkill),作者:潇之骥 

在有些统计名单中通常会把名字罗列在同一个单元格中,但由于后面工作需要,需要把名字挨个提取出来,往往需要加班加点才能完成。


今天结合工作实际,介绍两种方法。


以图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表格。


推荐↓↓↓
Excel技巧精选