Excel 如何提取一列数据的唯一值?

图4.98中C列中的值是比赛项目,由于存在多人参加相同项目的问题,因此有些项目重复出现。现要求在E列罗列出所有比赛项目,不允许有重复值。

解题步骤

Excel从2007版开始提供了一个“删除重复项”工具,用于提取行中的唯一值,如果是Excel 2003,则只能通过公式或筛选来完成。本例展示“删除重复项”的应用,具体操作步骤如下。

1.选择C2:C13区域,按组合键<Ctrl+C>复制。

2.选择E2单元格,然后按Enter键粘贴数据。

3.单击功能区的“数据”→“删除重复项”,弹出如图4.99所示的“删除重复项”对话框。

图4.99 “删除重复项”对话框

4.单击“确定”按钮保存设置,同时执行删除重复项,Excel 会弹出图 4.100 所示的提示信息,通知用户删除了多少个重复值和保留了多少个唯一值,图4.101则是删除重复值后的效果。

图4.100 提示删除数量和剩余项目数量

图4.101 唯一值

知识扩展

1.删除重复项功能不是从数据源中提取唯一值并存放在其他地方,而是直接在原始区域中删除重复出现的值,高级筛选工具才可以提取选区唯一值到其他的区域。

为了不破坏数据源,本例在操作时先将数据复制到其他区域,然后再删除重复项。如果不想复制数据,要直接提取唯一值,那么应该采用高级筛选工具,操作方式为:单击数据区域以外的空白单元格(如 K1),然后单击功能区的“数据”→“高级”,弹出如图 4.102 所示的“高级筛选”对话框,在对话框中按图4.103所示的方式设置筛选参数,当单击“确定”按钮后能得到图4.104所示的筛选结果。

图4.102 高级筛选对话框

图4.103 设置筛选参数

图4.104 筛选结果

2.删除重复项工具支持单列重复和多列重复的判断,本例处理的是单列重复项,多列重复指的是多列数据都同时相同才算重复,如果部分数据相同则不会删除。

在图4.105中,“姓名”、“地区”和“参赛项目”复选框都选择表示3列同时重复才删除,因此尽管有3个长沙,有3个田径,有2个铅球,但是真正重复的只有第5行和第13行,姓名、地区和参赛项目同时重复才删除,因此执行结果是删除第13行,其他数据保留。

图4.105 删除多列重复项

请在封面中缝指定的QQ群下载文件和视频教材,从而方便练习,同时验证本案例中的技巧与操作结果。

Excel 如何加快小数的输入速度?

公司有一台测试机,办公人员每天都需要将测试机中产生的压力和温度抄写到Excel中,压力和温度都包含两位小数。

由于每天要输入的数值较多,是否有办法让小数点自动产生呢?例如,要输入 123.45,只需要输入12345即可。

解题步骤

在“Excel选项”对话框中提供了自动产生小数的选项,具体操作步骤如下。

1.按组合键<Alt+T+O>,弹出“Excel选项”对话框。

2.打开“高级”选项卡,然后选择“自动插入小数点”复选框,下方的“位数”保持默认值2即可,表示自动在整数的第2位小数前面插入小数点。设置界面如图4.97所示。

图4.97 设置自动插入小数点2位

3.单击“确定”按钮保存设置,同时返回工作表。

4.在单元格中输入数值 12345,当单击 Enter 键后可以发现单元格的值已经自动变成123.45。继续在单元格中输入 645789,单击 Enter 键后可以发现单元格的值已经自动变成6457.89。

知识扩展

1.“自动插入小数点”选项默认是未选中的,当选中后可以自动在指定的位置插入小数点,但是它只对整数有效,如果在单元格中输入的值本身就是小数,那么Excel不会在该值的指定位置插入新的小数点。

2.自动插入小数点的默认位数是2位,可以根据需求随意调整,但是只能在-300~300范围之内。

3.如果将位数调整为-3,那么在单元格中输入3后将自动变成3000。

Excel 可以批量复制格式吗?

在图4.95中有4个标题,要求每个标题的格式必须一致。现在已经对A组的标题设置了格式,包含字体名称、字号、字体颜色和单元格背景颜色,是否有办法将A组的格式快速复制到其他标题区域中去?

解题步骤

格式刷可以将一个单元格或一个区域的值快速复制到其他单元格或区域,具体操作方法如下。

1.选择第一个标题区域A1:C2。

2.双击“开始”选项卡中的格式刷(其图标为)。

3.依次选择E1:G2、A11:C12和E11:G12区域,此时E1:G2、A11:C12和E11:G12区域将自动应用A1:C2区域的格式,效果如图4.96所示。

图4.96 使用格式刷批量复制格式后的效果

4.按Esc键取消格式刷工作模式,此时鼠标指针旁边的格式刷图标会自动消失。

知识扩展

1.复制工具很多,其中复制粘贴会将区域的值和区域的格式一并复制过去,不符合本例需求;选择性粘贴格式尽管可以只复制格式,但其步骤多、效率低,它适合单个区域复制;格式刷只复制格式,效率最高,适合对多区域粘贴格式。

2.单击格式刷只能复制一次格式,而双击格式刷则可以不限制复制次数,直到用户按 Esc键后停止。

3.格式刷不会复制单元格的行高和列宽,假设需要将宽度与高度也一并复制过去,应采用选择性粘贴。

Excel 长短不一的姓名能否左右对齐?

图 4.90 中姓名一栏包含两个字、三个字和四个字,它们占用的宽度是不相同的。现要求将它们调整为占用相同的宽度。

手工输入空格从而统一宽度比较费时、费力,有什么办法一次性调整完成呢?

解题步骤

设置单元格的对齐方式可以让长短不一的单元格统一宽度,具体操作步骤如下。

1.选择A1:A11区域,然后按组合键<Ctrl+1>,弹出“设置单元格格式”对话框。

2.打开“对齐”选项卡,然后将“水平对齐”由默认的“常规”修改为“分散对齐(缩进)”,操作界面如图4.91所示。

3.单击“确定”按钮保存设置,同时返回工作表界面,此时所有姓名将显示为图4.92所示的效果。

图4.91 设置对齐方式为分散对齐

图4.92 分散对齐的姓名

知识扩展

1.在单元格的字符中间添加若干空格可以让字符长短不一的单元格对齐显示,但是它并不能自动适应单元格的宽度调整,手工调整列宽后必须重新输入空格数量,因此效率极度低下。本例的办法是通过设置格式让字符分散对齐,字符会随列宽相应地变化,例如图4.93中A列加宽后,姓名仍然总是保持对齐状态。

2.在“水平对齐”右方有一个“缩进”选项,如果需要将姓名所在列加宽,可以根据实际宽度决定缩进一定的量,例如,对图4.93缩进两个单位后可以得到图4.94所示的效果。

图4.93 自动适应列宽

图4.94 缩进两个单位

请在封面中缝指定的QQ群下载文件和视频教材,从而方便练习,同时验证本案例中的技巧与操作结果。

Excel 可否屏蔽“包含无法删除的个人信息”对话框?

部分文档在保存时总会产生图4.87所示的提示,需要单击Enter键后才能保存,每天都会浪费不少时间,是否有办法去除这个提示信息呢?

图4.87 保存文件时的提示信息

解题步骤

出现此提示表示文档中有一个或多个不兼容却又无法删除的个人信息,解决方法有两个:一是人工找到该信息然后手工删除,二是通过设置选项让Excel在保存文件时不删除个人信息。后者比较简单易学,具体步骤如下。

1.按组合键<Alt+T+O>,弹出“Excel选项”对话框。

2.按图4.88所示的方式依次单击“信任中心”→“信任中心设置”,弹出“信任中心”对话框。

图4.88 弹出“信任中心”对话框

3.在“信任中心”对话框中按图4.89所示的方式单击“个人信息选项”→“保存时从文件属性中删除个人信息”,从而取消选择“保存时从文件属性中删除个人信息”复选框,表示不删除个人信息。由于不再删除,因此不可能删除失败,也就不存在因删除失败而生成的对话框了。

图4.89 取消选择“保存时从文件属性中删除个人信息”复选框

4.单击“确定”按钮,保存设置,返回工作表界面后再次保存文件,可以发现 Excel 将不再出现图4.87所示的提示信息。

知识扩展

1.在“保存时从文件属性中删除个人信息”下方有一个“文档检查器”,它可以检查当前文档中有哪些个人信息。

2.“保存时从文件属性中删除个人信息”复选框在多数情况下是呈灰色禁用状态的,只有文档有问题时才可以使用,因此当Excel无法选中此选项时,不要认为软件有问题,恰恰表示没有问题。

请在封面中缝指定的QQ群下载文件和视频教材,从而方便练习,同时验证本案例中的技巧与操作结果。

Excel 能否批量添加前缀/后缀

图 4.80 是某公司的工资表,现要求将出勤异常栏的时间后面加“小时”,实际工资的前面添加“美元”,从而不至于产生歧义。有没有办法批量添加而不影响公式运算呢?

解题步骤

自定义单元格的数字格式可以批量为单元格添加前缀或后缀,而且不影响公式运算,具体操作步骤如下。

1.选择C2:C11区域,按组合键<Ctrl+1>,弹出“设置单元格格式”对话框。

2.单击“自定义”,右方的格式代码文本框中默认值是“G/通用格式”,在其后添加“小时”2字,操作界面如图4.81所示。

图4.81 设置单元格格式从而添加后缀

3.单击“确定”按钮保存设置,然后选择E2:E11区域,并按组合键<Ctrl+1>,弹出“设置单元格格式”对话框。

4.单击“自定义”,右方的格式代码文本框中显示了以前设置的格式代码“0.0”,在其前方添加“美元\:”,操作界面如图4.82所示。

图4.82 设置单元格格式从而添加前缀

图4.83 添加前缀与后缀的结果

格式代码原本应该是“美元:0.0”,表示在数字格式“0.0”前追加“美元:”,但是由于半角冒号属于特殊字符,需要使用“\”将它还原为字符本身。

5.单击“确定”按钮保存设置,同时返回工作表界面,此时工资表将显示为图4.83所示的结果,C列添加了后缀,E列添加了前缀。

知识扩展

1.单元格的格式代码相当复杂,有太多的特殊字符,也有很多固定的字符串需要记住。“G/通用格式”代表默认的格式“常规”,也就是说,所有单元格在自定义格式之前都采用“G/通用格式”,在此情况下,单元格会自动调整数值的显示方式。例如,单元格的宽度不够显示整个数字时,会对小数进行四舍五入,还会对大于等于12位的值使用科学计数(指数)法显示。自定义数字格式时往往会固定小数的位数,或者按需求添前缀、后缀。

2.由于“G/通用格式”代表“常规”,因此“G/通用格式小时”表示在原来的数值后面添加后缀“小时”,“美元G/通用格式”则表示在原来的数值前面添加前缀“美元”。本例中E2:E11区域原本的格式代码是“0.0”而不是“G/通用格式”,因此采用的格式代码为“美元\:0.0”。

3.格式代码原本是分4个段的:“正数;负数;0;文本”,当需要添加前缀或后缀的区域有正数以外的值时,格式代码会复杂许多。例如,B2:B2 区域既可能有正数、负数、0,也可能有文本,现要求在正数前面添加“收入”、负数前面添加“支出”、0和空白都不显示、文本则添加“【”和后缀“】”,那么可以对此区域设置格式代码“收入G/通用格式;支出G/通用格式;;【@】”,图4.84是数据源,图4.85是设置数字格式后的效果。

图4.84 数据源

图4.85 添加格式代码后

此处的格式代码中包含3个分号,它将代码切分为4段,第一段“收入G/通用格式”对应正数,表示在正数前面添加“收入”;第二段“支出 G/通用格式”对应负数,表示在负数前面添加“支付”,由于“G/通用格式”前面没有写负号,因此负数“-12.5”将显示为“支持12.5”;第三段是空白,分号后面什么都没有,因此当单元格中的值是0时将显示为空值;第四段“【@】”对应文本,表示在文本前后分别添加“【”和“】”,代码中的“@”代表文本。

4.格式代码的前三段都是数值,最后一段代表文本,因此也可以使用两段代码来分别限制数值和文本。例如,格式代码“0元;【@】”表示对正数、负数和0都添加后缀“元”,文本则添加方括号,效果如图4.86所示。

图4.86 用两段代码格式化区域

使用两段编码也基本能实现需求,不过分四段代码控制单元格能做到更精细、更有针对性。

5.格式代码可以让单元格显示额外的内容,如让数字显示为文本,但是它仅改变了单元格的显示效果、不改变单元格本身的值,因此不管如何设置单元格的格式都不会影响运算。

Excel 如何让数据批量扩大/缩小若干倍?

下图中的产品单价是美金,领导突然要求改用人民币结算,要把D列的所有单价都扩大到6.7倍(当前的美金与人民币换算比例为6.7:1)。

手工一个一个修改单价过于烦琐,是否有办法一次性修改完所有的单价呢?

图4.75 订单表

解题步骤

选择性粘贴工具可以批量将单元格的值扩大若干倍或缩小到N分之一,具体操作方法如下。

1.在G1单元格输入数值6.7。

2.复制G1,并选择D2:D10区域,然后单击右键,从右键菜单中选择“选择性粘贴”,弹出“选择性粘贴”对话框。

3.在对话框中选择粘贴选项“数值”及运算选项“乘”,然后单击“确定”按钮。

4.将标题“单价(美金)”修改为“单价”,图4.76是粘贴选项设置界面,图4.77则是粘贴结果,可以看到D2:D10区域内每个单元格的值都扩大了6.7倍。

图4.76 设置粘贴选项

图4.77 粘贴结果

如果需要将D2:D10区域缩小1/6.7,那么按同样步骤执行选择性粘贴即可,唯一不同的地方是在“选择性粘贴”对话框中将“乘”修改为“除”。

知识扩展

1.选择性粘贴提供了加、减、乘、除等运算选项,默认状态是“无”。

2.通过选择性粘贴对一个区域扩大或缩小时需要注意的是必须在指定运算选项的同时将粘贴选项设置为“数值”,否则会将格式信息一并复制过去。

3.事实上,选择性粘贴工具不仅可以对一个区域中的每个值都扩大/缩小相同的倍数,还可以一次性将不同单元格扩大/缩小不同的倍数。例如,要求图 4.78 中 A1:A10 每个单元格都相应地减去C1:C10,那么可以复制C1:C10,然后选择A1:C10区域,弹出“选择性粘贴”对话框,选择“数值”和“减”复选框,单击“确定”按钮后A1:A10的值将分别减去对应于C1:C10区域的值,图4.79即为批量相减的结果。

图4.78 批量减去一个数值前

图4.79 批量减去一个数值后

请在封面中缝指定的QQ群下载文件和视频教材,从而方便练习,同时验证本案例中的技巧与操作结果。

Excel 能否让数据以“万”作为单位显示?

图4.70所示的订单表中金额数量较大,想让它显示为以“万”为单位,如9850000显示为“985万”,有没有办法一次性修改所有的单元格?

解题步骤

设置单元格的数字格式可以让单元格的值显示为以“万”为单位,具体操作步骤如下。

1.选择金额区域D2:D6。

2.按下组合键<Ctrl+1>,弹出“设置单元格格式”对话框。

3.单击“自定义”,然后在右方的“类型”文本框中输入格式代码“0\.0,万”,输入界面如图4.71所示。

图4.71 设置单元格的数字格式

4.单击“确定”按钮保存设置,同时返回工作表界面,金额区域将显示为图4.72所示的效果。

图4.72 以万作为单位显示的金额表

知识扩展

1.在格式代码中有很多字符并不代表字段本身,而是拥有特殊含义的编码,有点像DOS命令中的通配符“*”和“?”,前者代表任意长度的任意字符,而非代表“*”这个字符,后者代表长度为 1 的任意字符,而非代表“?”这个字符本身。假设一定要使用“*”和“?”,那么采用“^”消除它们的特权即可,如用“^*”代表字符“*”,用“^?”代表字符“?”

Excel的格式代码中比较类似,如在小数点左边的0代表任意整数,小数点右边的0则只代表一位小数,因此格式代码“0.00”其实表示整数位数不限、小数位数是2。

格式代码中有很多具有特殊含义的字符,b、c、d、g、h、m、n、s、t、z、-、\、@、#、[]、%及小数点、半角逗号都是,如果需要去除这些字符的特殊含义仅使用字符本身,那么在它前面添加“\”即可。例如,单元格的值是123.456,设置格式代码“0”后将显示为“123”,因为格式代码中没有小数点和小数,假设将格式代码修改为“\0”,那么单元格将显示为“0”,因为此处格式代码中的0不再具有特殊含义,仅仅代表数字0本身。图4-73和图4-74分别展了格式代码“0”和“\0”的显示结果。

图4.73 格式为“0”的效果

图4.74 格式为“\0”的效果

基于以上分析,现在再来理解“0\.0,万”就比较简单了。“0\.0,万”中的“,”代表千分位分隔符,它前面的“0\.0”表示在小数点千分位分隔符的左边插入小数点和一位数值,从而使小数点出现在 4 位数值的左边,将原来的数值单位从元提升到万。例如,原本的“123.456”将显示为“1.2 万”,在千位分隔符的左边一位数字前产生小数点,千分位分隔符右方只显示“万”,不显示千分位分隔符右方的其他字符。

2.本例的格式代码只能让金额带一位小数,如果要求小数点右边显示4位小数,那么应该将格式代码修改为“0!.0000万”。无法实现小数点右方显示2位或3位小数。

3.格式代码仅修改单元格的显示方式,单元格本身的值并没有产生变化。例如通过格式代码将123显示为0时,尽管看到的是0,但用该单元格参与数值运算时仍然按123计算。

请在封面中缝指定的QQ群下载文件和视频教材,从而方便练习,同时验证本案例中的技巧与操作结果。

Excel 可否让数据按小数点对齐

在图4.67所示的订单表中,单价的小数包含1位、2位、3位,显得比较凌乱,现要求将它们按小数点对齐。

一个一个单元格调整比较耗时,是否有办法一次性让它们按小数点对齐呢?

解题步骤

设置单元格的数字格式可以让数值按小数点对齐,具体操作方法如下。

1.选择单价区域B2:B6。

2.按组合键<Ctrl+1>,弹出“设置单元格格式”对话框。

3.单击“自定义”,然后在右方的“类型”文本框中输入数字格式代码“0.???”,要注意在半角状态下输入代码。输入界面如图4.68所示。

图4.68 设置单元格的数字格式

4.单击“确定”按钮保存设置,同时返回工作表界面,此时单价将显示为图4.69所示的结果。

图4.69 按小数点对齐的单价表

知识扩展

1.代码“0.???”表示整数部分为任意值、小数位数为3位,当小数位数不足3位时小数部分总占据3位字符的宽度。

2.改成“0.000”也可以让单价按小数点对齐,不过当小数位数不足3位时会用0占位,从而使原来的“1.1”显示为“1.100”。用户应根据自己的需求决定采用“0.000”还是“0.???”,或者“0.0??”。采用“0.0??”的好处是假设单价中有整数12,不会显示为“12.”这种不伦不类的小数,而是显示为“12.0”。

3.本例的格式代码中采用3个问号“???”,是因为单价中最长的小数位数为3。因此要确保小数总是按小数点对齐,在设置单元格的数字格式前应观察小数点右方的小数最大长度。

4.设置单元格的格式仅修改它的显示样式,并不会修改单元格的数值本身。

5.把其他单元格粘贴到B2:B6区域,如果不采用选择性粘贴的方式粘贴数值,而是使用快捷键<Ctrl+V>执行粘贴,那么粘贴后会破坏B2:B6区域原本设置的格式,从而导致粘贴后的单元格与其他单元格的小数点位置不一致。

请在封面中缝指定的QQ群下载文件和视频教材,从而方便练习,同时验证本案例中的技巧与操作结果。

Excel 如何将院校与专业拆分成两列?

图4.56中B列包含毕业院校与专业名称,现要求将院校名称与专业名称分别存放在两列中,有何方法批量拆分呢?

图4.56 职工资料表

解题步骤

仔细观察院校名称和专业名称,可以发现院校名称多以“大学”或“学院”结尾的,而且其中部分院校名称既包含“大学”又包含“学院”,分列工具无法完成这种复杂数据的分列工作。本例的重点在于通过替换创建分隔符,使院校的名称都以分号结尾,然后再以分号为条件执行分列。具体操作步骤如下。

1.选择B2:B13区域。

2.按组合键<Ctrl+F>,弹出“查找和替换”对话框。

3.将查找内容设置为“*大学*学院*”,然后单击“查找全部”按钮,此时“查找和替换”对话框中会罗列出找到的所有目标,界面如图4.57所示。

图4.57 指定查找与替换内容

4.按组合键<Ctrl+A>全选找到的目标单元格。

5.打开“替换”选项卡,将查找内容设置为“大学”,将替换内容设置为“@”,然后单击“全部替换”按钮。替换设置界面如图4.58所示,替换结果如图4.59所示

图4.58 将大学替换成@

图4.59 替换效果

6.选择B2:B13区域,然后按组合键<Ctrl+H>,弹出“查找和替换”对话框。

7.将查找内容设置为“学院”,将替换内容设置为“学院;”,然后单击“全部替换”按钮。此处需要注意的是第三个字符为半角状态下的分号。设置界面如图4.60所示。

图4.60 将“学院”替换成“学院;”

8.重复步骤3,再将“大学”替换成“大学;”,替换界面如图4.61所示,而替换后的结果如图4.62所示,每个单元格中都拥有一个半角的分号,它刚好将院校名称与专业名称区隔开。

图4.61 将“大学”替换成“大学;”

图4.62 通过替换生成分隔符

9.选择B2:B13区域,在“查找和替换”对话框中将查找内容设置为“@”,将替换对象设置为“大学”,然后单击“全部替换”,替换后效果如图4.63所示。

图4.63 将“@”替换成“大学”

10.关闭“查找和替换”对话框,选择 B2:B13 区域,单击功能区的“数据”→“分列”,从而打开图4.64所示的“文本分列向导”第①步,保持默认设置,然后单击“下一步”按钮。

图4.64 指定分列方式

11.选择“分号”复选框,然后单击“下一步”按钮即可完成分列。设置界面如图4.65所示,图4.66则是分列结果。

图4.65 设置分列的分隔符

图4.66 分列结果

12.对A1:C13区域添加边框和标题。

知识扩展

1.分列工具对于字符串中有明显分隔符时才有效,显然本例中的任意单元格都不具备分隔符,因此需要自己创造分隔符,然后配合分列工具完成需求。

2.本例中部分字符串中既包含“大学”又包含“学院”,为了分区只有“大学”和同时包含“大学”与“学院”的字符串,本例的做法是通过查找选中所有包含“大学”与“学院”的单元格,然后将其中的“大学”替换成“@”,从而使所有单元格都具有共同的特点——要么“大学”右方是专业名称,要么“学院”右方是专业名称。当它们具有相同点后,后面的操作就变得简单,在“大学”和“学院”右边添加分号,然后以分号为条件执行分列。

本例中将“大学”替换成“@”的目的是避免部分字符被分列到第3个单元格中去。

3.工作中可能还会有比本例复杂的字符串需要替换,有可能没有办法直接通过某个工具达成需求,但只要善于观察、分析,找到其中的某些特征,总有变通的办法去完成工作。

请在封面中缝指定的QQ群下载文件和视频教材,从而方便练习,同时验证本案例中的技巧与操作结果。