1.5 快速填充
从2013版开始,Excel就提供了“快速填充”的功能,可以基于示例填充数据。Excel 2016中“快速填充”功能更为强大、高效和智能,足以让用户抛弃分列功能和文本函数。
1.5.1 启用记忆式键入和快速填充功能
使用Excel快速填充功能,需要启用记忆式键入和快速填充功能。具体操作过程为:
1 右击功能区。
2 在快捷菜单中选择“自定义功能区”选项(或者在功能区“文件”选项卡单击“选项”按钮),弹出“Excel选项”对话框。
3 在“Excel选项”对话框左侧大类中选择“高级”选项。
4 在右侧框中的“编辑选项”组里勾选“为单元格值启用记忆式键入”“自动快速填充”复选框(默认情况下,二者都为勾选状态;如果没有先勾选“为单元格值启用记忆式键入”复选框,则不能勾选“自动快速填充”复选框)。
5 单击“确定”按钮,记忆式键入和快速填充功能就启用了。
操作过程如图1-38所示。
图1-38 启用快速填充功能
1.5.2 记忆式键入现有条目
如果在单元格中输入的前几个字符与该列中的某个现有条目匹配,Excel会自动输入剩余的字符。这种自动重复列中已有的值的方式叫作记忆式键入。比如,在A1单元格中有“重庆市荣昌永荣中学校”,当在A2单元格输入“重庆市”时,会在A2单元格自动显示剩余字符“荣昌永荣中学校”。继续输入,则继续显示剩余字符,如图1-39所示。
图1-39 记忆式键入效果
Excel完成开始键入的内容后,可以执行下列操作之一:
● 按Enter键,接受建议的条目,完成条目的大小写字母样式精确匹配现有条目。
● 若要替换自动输入的字符,请继续键入。
● 要删除自动输入的字符,请按Backspace键。
注意
Excel仅自动完成包含文本或文本和数字组合的条目,不会自动完成只包含数字、日期或时间的条目。仅当光标位于当前单元格内容的结尾时,Excel完成条目输入。Excel以活动单元格所在列中的潜在“记忆式键入”条目列表为基础,不自动完成行中重复的条目。
1.5.3 预览快速填充的长度数字
在文件“第1章 数据填充”中插入一个工作表,将该工作表命名为“快速填充1”。在工作表中建立一个田土数据表,如图1-40所示。
图1-40 田土数据表
表中,如果想从A列文本中提取出长度数字存放在B列,快速填充时,希望预览一下填充的效果,Excel能做到吗?可以使用Excel的“自动快速填充”功能实现预览。
使用“自动快速填充”功能,需要源数据列和模式(示例)。比如,A列数据为源数据,要将提取出来的长度数字放在B列。如果要从A3单元格寻找模式,就在B3单元格中输入模式。A3单元格中的长度数字“40”是在“长”字和“米”字之间,在B3单元格中输入“40”,“40”就是一个非常典型的模式。
紧接着在B4单元格输入“2”,这时,在数据列提取的长度数字便在将要填充的区域预览出来,如图1-41所示。
图1-41 填充预览
预览的数据仅是一个填充建议。如果预览正确,就按Enter键确认。长度数字便全部提取出来了。并在B4单元格旁出现“快速填充选项”按钮,单击箭头,可打开下拉列表。如果填充有误,用户可选择“撤消快速填充”选项予以撤消,如图1-42所示。
图1-42 快速填充效果和“快速填充选项”
注意
基于源数据的模式要与源数据在同一行,模式与源数据之间不能有空列。
1.5.4 使用命令快速填充宽度数字
有时由于输入有误、计算机性能不好等,预览效果不显示、不实时或不理想,用户可以调用“快速填充”命令进行快速填充。当鼠标放置于“数据”选项卡“数据工具”组中的“快速填充”按钮上面时,会出现快速填充的功能介绍,如图1-43所示。
图1-43 快速填充功能
快速填充是自动填充,只要有数据列和填充模式,就能进行快速填充,快捷键为“Ctrl+E”组合键。快速填充命令可以在“数据”和“开始”选项卡中调用。
1.5.4.1 通过“数据”选项卡快速填充宽度数字
在上例的基础上继续提取宽度数字。具体操作过程如下:
1 在C3单元格输入宽度数字“20”作为模式,按Enter键,鼠标便下移至C4单元格。
2 选择“数据”选项卡。
3 单击“数据工具”组中的“快速填充”按钮,其余的宽度数字就被正确填充了。
操作过程及效果如图1-44所示。
图1-44 快速填充宽度数字
1.5.4.2 通过“开始”选项卡快速填充宽度数字
重新提取宽度数字。具体操作过程如下:
1 在C3单元格输入宽度数字“20”作为模式,按Enter键,鼠标便移至C4单元格。
2 选择“开始”选项卡。
3 单击“编辑”组中的“填充”按钮。
4 在下拉菜单中选择“快速填充”选项。
操作过程如图1-45所示。
图1-45 在“开始”选项卡调用快速填充功能
注意
执行“快速填充”命令前,如果只有1个模式,可以选择包含模式所在单元格和目标单元格在内的整个列区域(有时可包含列标题单元格)或列区域内的任意单元格,但所选择的列区域或单元格不能超过源数据列的行数(含列标题行)。比如,本例的源数据在A3:A7区域,行数范围为3~7行,如果所选择的填充区域不是C3:C7整个区域,或者所选单元格在C3:C7之外,或者模式不起作用,就无法执行“快速填充”命令,就会弹出警告,如图1-46所示。
图1-46 警告对话框
先选定填充区域,再执行“快速填充”命令,能够按既定区域填充。如果只选择一个单元格,就执行“快速填充”命令,让计算机判断填充区域,当源数据有多列且行数不一时,最后填充的区域有可能不是我们想要填充的区域。
1.5.5 快速提取带度量单位的高度数字
很多时候,需要提取字符串中的数字或字符串,但每个源数据长短不一,例如“张家田:长41米宽35米高20米”中的数据,很难直接使用LEFT、RIGHT、MID、FIND等文本函数来提取,需要使用一些比较复杂的公式,这对于初级用户来说难度比较大。使用“快速填充”功能则相对简单了很多。
接着上例,以提取带度量单位的高度数据为例。
在D3单元格输入宽度数字“5米”作为模式后,按Enter键,鼠标便移至D4单元格。在“数据”选项卡中,单击“数据工具”组的“快速填充”按钮,其余宽度数字就正确填充了,如图1-47所示。
图1-47 提取字符串的效果
注意
Excel快速填充时,提取字符是根据字符串的某种规律来智能提取的。比如,根据分隔符进行提取。源数据中包含分隔符,形如“A11-123-B33”,Excel能够根据分隔符的位置,智能提取任意部分或多个部分。
当“快速填充选项”标志还处于显示状态时(此时未在填充区域外输入数据),如果修改填充模式,Excel会自动按修改后的模式填充。比如。将D3单元格的“5米”修改为“5”。敲击回车键后,Excel就按新的“模式”重新自动填充了。反之,可以用这种方法添加度量单位。操作过程及效果如图1-48所示。
图1-48 更改填充模式的效果
1.5.6 从数字中提取数字或插入字符
1.从数值型数字中提取数字或插入字符
在“快速填充1”工作表中建立一个数值型数字提取表,如图1-49所示。
图1-49 数值型数字提取表
表中,F列的7位数字为数值型数字,要从F列提取第2~5位数字放在G列,要在F列7位数字的第2位和第3位数字之间及第5位和第6位数字之间插入连接符“-”,应该如何操作呢?
在G3单元格输入“2345”后,选择G3:G7区域。在“数据”选项卡,单击“数据工具”组中的“快速填充”按钮,数字就被提取出来了。
从数值型数字中提取出来的数字仍然为数值型数字。从“1002003”中提取第2~5位数字,提取出来的数字如果为文本型数字,结果应为“0020”,而这里的结果是“20”。可见,从数值型数字中提取出来的数字仍然为数值型数字。
再在H3、H4单元格分别输入“12-3456-7”“76-54-32-1”后,敲击Enter键,鼠标移至H5单元格。在“数据”选项卡,单击“数据工具”组中的“快速填充”按钮,就完成了数字转编号的操作。
效果如图1-50所示。
图1-50 从数值型数字中提取数字和添加字符的效果
注意
使用Excel快速填充功能时,需要注意:
● 如果鼠标选择的是欲填充区域的任意单元格,可能会受到与数据表不隔行的标题的影响,因它们处于一个矩形区域内,按“Ctrl+Shift+8”组合键可查看这个矩形区域。这种情况不能正确填充。这时,需要先选择欲填充区域。本例填充G列,就要先选择G3:G7区域。如果在数据表与标题之间插入一个空白行,快速填充时,就可以选择欲填充区域的任意单元格。
● 如果在数值型数据中插入符号,除特殊的日期、时间外,插入符号后的数据就成为文本数据。
2.从文本型数字中提取数字或插入字符
在“快速填充1”工作表中建立一个文本型数字提取表,如图1-51所示。
图1-51 文本型数字提取表
表中,在输入身份证号码之前,已将F列的单元格格式设置为文本格式,这是因为Excel单元格中的数值型数字最多显示11位,超过11位就会显示为科学记数,而我国现行身份证号码均为18位。如果要将在身份证号码中提取的8位文本出生日期存放在G列,将8位出生日期变成形如“1994/1/1”的规范日期存放在H列,应该如何操作呢?
在G12单元格输入“19671213”后,敲击Enter键,鼠标移至G13单元格。在“数据”选项卡,单击“数据工具”组中的“快速填充”按钮,出生日期就被提取出来了。
从身份证号码中提取出来的出生日期可以插入“/”,变为一种规范的日期。出生日期中的月和日可能是1位数,也可能是2位数,所示本例的模式需要设置2个。在H12、H13单元格分别输入“1967/12/13”“1967/11/26”,鼠标移至H14单元格。在“数据”选项卡中单击“数据工具”组的“快速填充”按钮,完成特定日期格式的填充。
快速填充效果如图1-52所示。
图1-52 从文本型数字中提取日期的效果
从H14、H15、H16单元格日期数据中的月日数字来看,有1位数的月日数字,由此可判断,此时提取的出生日期已被转换为数值型数字。
如果出生日期中的月日数字都需要显示为2位数,就要在快速填充前设置单元格格式。其设置过程为:
1 选择H12:H16区域。
2 在右键快捷菜单中选择“设置单元格格式”选项(或在“开始”选项卡,单击“数字”组右下角的“对话框启动器”按钮)。
3 在弹出的“设置单元格格式”对话框中选择“数字”选项卡。
4 在“分类”列表框中选择“自定义”选项。
5 在右侧的“类型”框中输入“yyyy/mm/dd”。
6 单击“确定”按钮,完成单元格格式设置。
7 再按前述方法进行快速填充。
操作过程及效果如图1-53所示。
图1-53 自定义日期格式后快速填充的效果
1.5.7 合并多列内容并添加符号
在“快速填充1”工作表中建立一个数据表,如图1-54所示。
图1-54 多列数据
想将表中A列的姓和B列的职位合并,再用斜杠与C列的籍贯连起来。这不仅涉及数据的提取,还需要添加分隔符“/”。以往这种操作是通过公式和“&”实现数据的连接的。现在,可以利用“快速填充”功能实现吗?
因为本例姓名有2个或3个字,所以需要2个模式。在D12、D13单元格分别输入“张师长/四川”“李军长/重庆”。选择D12:D16区域,在“数据”选项卡,单击“数据工具”组中的“快速填充”按钮,完成提取、合并、添加字符的操作,效果如图1-55所示。
图1-55 提取和合并字符的效果
注意
因本例全部数据均为文本,如果将标题“合并和添加字符”放在A10:D10区域的任意一个单元格,Excel将无法判断模式是怎样构成的,需要选择D12:D16区域,再进行快速填充。当然,在表标题和数据表之间间隔一个空行,也是解决这个问题的有效方法。
1.5.8 将姓名分成姓和名两列
在文件“第1章 数据填充”中插入一个工作表,将该工作表命名为“快速填充2”。在工作表中建立一个姓名数据表,如图1-56所示。
图1-56 姓名数据
表中,需要将诸如姓名的数据分成“姓”和“名”两部分。如果不使用单纯的数据分列方法,也不使用函数公式的方法,快速填充方法能实现吗?
在B3单元格输入“张”字,按Enter键,鼠标移至B4单元格。在“数据”选项卡,单击“数据工具”组中的“快速填充”按钮,其余姓氏便填充了。同理,快速填充“名”列。填充效果如图1-57所示。
图1-57 提取字符串的效果
1.5.9 排序后多次快速填充
快速填充的模式最多为2个。有时数据长短不一,2个模式不能囊括数据规律时,快速分列或提取字符不一定有满意的效果。
在“快速填充2”工作表中建立一个省市数据表,如图1-58所示。
图1-58 省市数据
模式若为2个,则可以集中,可以分散。本例要提取A列的城市名,作为“模式”的两个词“荣昌”“攀枝花”分散在B11、B13两个单元格。选择B11:B16区域的任意单元格。在“数据”选项卡,单击“数据工具”组中的“快速填充”按钮,结果如图1-59所示。
图1-59 城市分列效果
显然,银川和柳州两个城市没有被正确提取。原因何在呢?原来,第1个模式“荣昌”在源数据“重庆市荣昌区”字符串中处于第4个和第5个字符的位置,第2个模式“攀枝花”在源数据“四川省攀枝花市”字符串中处于第4个、第5个和第6个字符的位置,而“银川”在源数据“宁夏回族自治区银川市”字符串中处于第8个和第9个字符的位置,Excel实在无法猜测要提取出来的城市在什么位置。
当2个模式不足以概括源数据的特征时,可以使用添加辅助列并多次快速填充的方法来实现提取字符的要求。操作过程如下:
(1)输入公式并排序。在C11单元格输入如下公式,并将公式向下填充到C16单元格:
选择C11:C16区域任意一个单元格,在“数据”选项卡的“排序和筛选”组中单击“升序”按钮,C11:C16区域就按文本长度排序了。
(2)第1次快速填充。选择包括2个模式在内的B11:B14区域,单击“数据工具”组中的“快速填充”按钮,完成第1次快速填充。
(3)第2次快速填充。在B15单元格输入“银川”,选择B15:B16区域,单击“数据工具”组中的“快速填充”按钮,完成第2次快速填充,A列的所有城市便被正确提取了。
操作过程及结果如图1-60所示。
图1-60 多次快速填充数据的效果
1.5.10 调整字符串的前后顺序
在“快速填充2”工作表中建立一个数据表,如图1-61所示。
图1-61 待调整顺序的字符串
想将表中“篮球basketball”调整为“basketball篮球”。如果不使用复杂的公式或高深的VBA,借助“快速填充”功能,可以快速调整字符串的前后顺序吗?
本例中每个字符串的汉字均为2个汉字或3个汉字,所以需要输入2个模式。在B20单元格输入“basketball篮球”,再在B22单元格输入“badminton羽毛球”。这2个模式之间虽然有空行,但与源数据列邻列,可以构成一个矩形区域。选择B20:B24区域,在“数据”选项卡,单击“数据工具”组中的“快速填充”按钮,就完成了字符串顺序的调整。填充效果如图1-62所示。
图1-62 调整字符顺序后的效果
1.5.11 复制相同的内容
在“快速填充2”工作表中新建一个数据表,如图1-63所示。
图1-63 待复制式填充的数据
表中,“职业”列与“姓名”列毫无瓜葛,这几个人都是诗人,使用Excel快速填充功能可以填充相同职业吗?
在B28单元格输入“诗人”,选择B28:B32区域。在“数据”选项卡,单击“数据工具”组中的“快速填充”按钮,其他人同样的职业便被填充了,如图1-64所示。
图1-64 复制式填充后的效果
可见,当用于快速填充的模式包含有源数据字符以外的字符时,Excel快速填充功能可以对这样的字符进行复制式填充,与使用左键双击填充有着异曲同工之妙,特别适用于数据行很多的情况。
1.5.12 灵活转换大小写
有时需要将成批单词、英语句子或姓名拼音首字母转换成大写,当然也可能要求全部转换成大写或全部转换成小写。使用Excel的快速填充,能够轻松实现。
在文件“第1章 数据填充”中插入一个工作表,将该工作表命名为“快速填充3”。新建一个拼音数据表,如图1-65所示。
图1-65 拼音数据表
表中,源数据在A2:A6区域,要将A列的姓名拼音首字母转换成大写,存放在B列,应该如何操作呢?
在B2单元格输入“Zhang Yunming”,按Enter键,鼠标移至B3单元格。在“数据”选项卡,单击“数据工具”组中的“快速填充”按钮,其余姓名拼音的首字母都被转换成大写了,效果如图1-66所示。
图1-66 姓名拼音首字母转换成大写的效果
也可以使用函数公式将姓名拼音首字母转换成大写,或将姓名拼音全部转换成大写或小写。在C2、D2、E2单元格分别输入如下函数公式:
选择C2:E2区域,将公式填充到E6单元格,效果如图1-67所示。
图1-67 用函数公式转换大小写的效果
可见,快速填充是Excel智能化的表现,实现方式灵活多变。合理使用“快速填充”功能,可以大大提高数据处理的效率。