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

admin

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

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

  以图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技巧精选,微信号:ExcelSkill,由香港注册会计师网【www.hkicpa.cn】综合整理发布,若需引用或转载,请注明来源!

向作者提问

  • 最新评论

全部评论