Excel数据处理与可视化
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 行列设置

1.4.1 快速删除空白行

【问题】

在用Excel处理数据时,由于添加、删除、剪切、复制等操作,经常会造成数据区出现空行的现象,这时要删除空行。

【实现方法】

(1)纯空白行,无其他空白单元格。

当数据区除了有整行空白,没有其他空白单元格时,采用快速删除空白行的方法为:按Gtrl+G组合键,打开“定位”对话框。单击“定位条件”按钮,打开“定位条件”对话框,“选择”栏下选择“空值”项,单击“确定”按钮后,右击,在弹出的快捷菜单中选择“删除”→“整行”,如图1-133所示。

图1-133 删除整行

(2)既有空白行,又有空白单元格。

如果数据区域除了空白行,还有空白单元格,采用正确的方法是:

建立辅助列;在H2单元格中输入公式“=COUNTA(A2:G2),按Enter键执行计算,然后将公式向下填充,如图1-134所示;筛选出辅助列中为0的行,并选中;按Alt+;组合键,显示可见行,右击,在弹出的快捷菜单中选择“删除行”,如图1-135所示。Excel 2010以上版本,可以直接将选中筛选出的行删除。

图1-134 添加辅助列

图1-135 删除空白行

1.4.2 插入行或删除行后,都可自动填写序号

【问题】

在数据处理过程中,插入行、删除行后,原有序号就会变得不连续了:新插入的行,序号是空的;删除行,序号则会间断了。

遇到这种情况,数据少时,可以手工修正,但数据如果有几千行,手工修正的效率就太低了。

【实现方法】

1)ROW函数

用公式“=ROW()-1”代替原有序号,如图1-136所示。

图1-136 用公式ROW()-1代替原有序号

因为序号是从第二行开始填写的,所以,序号=本行行号减1。当插入新行后,原有行则被向下“推”,序号也自动改变。但是,新插入的行,序号并不会自动出现,须要采用公式来填充。

2)ROW函数+表格

将序号用公式“=ROW()-1代替”,再将原数据通过单击“插入”→“表格”转换为表格,即可实现序号自动出现,如图1-137所示。

图1-137 ROW函数+表格

但是,通过上述两种方法添加的序号,筛选以后,序号却不能从1开始,这将影响筛选结果的个数与后期的分类打印。

3)SUBTOTAL函数

在A2单元格中输入公式“=SUBTOTAL(3,$B$2:B2)”,按Enter键执行计算,再将公式向下填充。

这样得到的序号,无论怎么筛选,序号都是连续的,如图1-138所示。

图1-138 SUBTOTAL函数

1.4.3 数据转置与跳过单元格复制

【问题】

如图1-139所示,能不能直接将表格1的数据转变成表格3的数据呢?能不能一次将表格2的所有红色斜体数字复制到表格1和表格3中呢?

图1-139 样表数据

【实现方法】

(1)选择性粘贴,数据转置的使用。

选择表格1全部数据,右击,在弹出的快捷菜单中选择“复制”命令,然后选中A17单元格,右击,在弹出的快捷菜单中选择“选择性粘贴”命令,在打开的“选择性粘贴”对话框中勾选“转置”项,单击“确定”按钮,即可得到表格3,如图1-140~图1-143所示。

图1-140 复制表格1数据

图1-143 行、列转置成表格3

图1-141 选择“选择性粘贴”

图1-142 勾选转置

(2)跳过单元格复制。

在表格2中,先选中N列,再按住Ctrl键选中O列、P列,右击,在弹出的快捷菜单中选择“插入”命令,即可在原来O列、P列前插入空列,如图1-144和图1-145所示。

图1-144 选择数据列

图1-145 插入空白列

选择M3:S12数据区域,右击,在弹出的快捷菜单中选择“复制”命令,如图1-146所示。

图1-146 复制M3:S12数据区域

选中表格1的B3单元格,右击,在弹出的快捷菜单中选择“选择性粘贴”命令,在打开的“选择性粘贴”对话框中勾选“跳过空单元”项,单击“确定”按钮,即可将表格2的所有红色斜体数字复制到表格1中,如图1-147~图1-149所示。

图1-147 “选择性粘贴”命令

图1-149 复制结果

图1-148 勾选“跳过空单元”

选中表格3的C17单元格,右击,在弹出的快捷菜单中选择“选择性粘贴”命令,在打开的“选择性粘贴”对话框中勾选“跳过空单元”“转置”两项,单击“确定”按钮,即可将表格2的所有红色斜体数字复制到表格3中,如图1-150和图1-151所示。

图1-150 勾选“跳过空单元”“转置”

图1-151 表格3的数据

1.4.4 最快捷的一列转多列方式

【问题】

数据如图1-152所示,如何将左侧A列数据快速转为右侧多行多列呢?

图1-152 一列转多列示例数据

【实现方法】

(1)将数据复制到C列。

(2)在D1单元格中输入公式“=C6”,按Enter键执行计算。因为从C6开始名字将另起一列显示,如图1-153所示。

图1-153 输入公式

(3)公式向下填充,再向右填充,在C1:G5区域会囊括原来一整列分布的数据。

(4)选中D1:G5区域,复制,再进行选择性粘贴,用数值覆盖原有的公式。

(5)删除C1:G5区域以外的数据。

一整列数据即可呈现为多列分布,如图1-154所示。

图1-154 数据呈现多列分布,并删除多余数据

1.4.5 聚光灯效果(阅读模式)改变当前行和列的颜色

【问题】

阅读模式,即通过鼠标单击到哪个单元格,该单元格对应的行和列都同时变成一种颜色。这种阅读模式,又叫聚光灯效果,能快速准确定位和修改相应数据,如图1-155所示。

图1-155 聚光灯效果

【实现方法】

(1)条件格式设计颜色。

选中数据区“开始”→“条件格式”→“新建规则”,弹出“新建规则”对话框。在打开的“编辑格式规则”对话框中选择“使用公式确定要设置格式的单元格”,然后输入公式“=(CELL("row")=ROW())+(CELL("col")=COLUMN())”,该公式的含义是,当前单元格的行号或列号等于活动单元格的行号列号时,执行条件格式,如图1-156所示。

图1-156 设置条件格式

虽然CELL()是易失性函数,但在使用时,颜色并不能随活动单元格的变化而自动的随之移动,还要进一步设置。

(2)颜色随单元格改变而移动。

•第1种方式,手动按F9键。先选择单元格,然后按F9键,行和列的颜色就移动到当前单元格了。但这种方式不是自动方式。

•第2种方式,使用VBA代码。只要一小段VBA代码就能实现完全自动颜色的移动。按Alt+F11组合键,打开VAB,执行如图1-157所示操作。

图1-157 代码设置颜色随单元格移动

图1-157所示的这段代码的意思是,当活动单元格改变时就执行一次计算。

(3)工作簿的保存。

添加了VBA代码的工作簿一定要保存成“启用宏的工作簿”,下次打开后,要选择“启用宏”命令,才能正常使用。

1.4.6 将同部门员工姓名合并到同一单元格

【问题】

如图1-158所示,左侧每个员工姓名对应一个数据行,如何快速变成右侧每个部门对应一个数据行?

图1-158 数据样例

【实现方法】

(1)先按照部门进行排序。

(2)在D2单元格中输入公式“=IF(A2=A3,B2&","&D3,B2)”,按Enter键执行计算,再将公式向下填充,得到的结果如图1-159所示。

图1-159 初步结果

(3)将结果复制,并进行选择性粘贴,只保留数值,放到C列相应的位置,并删除D列。

(4)在D2单元格中输入公式“=COUNTIF($A$2:A2,A2)”,再将公式向下填充,得到的结果是每个部门中的第一行编号都是1,即姓名最全的一行,如图1-160所示。

图1-160 添加编号

(5)筛选出“编号”不是1的各行,然后删除,即得结果,如图1-161所示。

图1-161 删除编号不是1的行

1.4.7 将同一单元格的同部门员工姓名分行显示

【问题】

如图1-162所示,怎样把写在同一单元格中的员工姓名进行分行显示呢?

图1-162 分行显示同部门的员工姓名

【实现方法】

(1)打开查询编辑器。

将光标放在数据区的任意位置,选择“数据”→“自表格/区域”,弹出“创建表”对话框,如图1-163所示。

图1-163 选择从表格

选择A1:B5区域后,单击“确定”按钮,打开查询编辑器,如图1-164所示。

图1-164 查询编辑器

(2)姓名的分列显示。单击“各部门所有人员”列标签,选择“转换”→“拆分列”→“按分隔符”,如图1-165所示。

图1-165 姓名分列显示

原数据区姓名之间是由“,”隔开的,所以“选择或输入分隔符”内,选择“逗号”命令,单击“确定”按钮,如图1-166所示。实现了姓名的分列显示,如图1-167所示。

图1-166 输入分隔符

图1-167 姓名分列显示结果

(3)逆透视列。按住Ctrl键,选中所有的姓名列,然后选择“转换”→“逆透视列”,如图1-168所示。

图1-168 逆透视序列

各部门所有姓名同列显示,然后删除属性列,如图1-169和图1-170所示。

图1-169 各部门姓名同列显示

图1-170 删除属性列

(4)关闭并上载。选择“开始”→“关闭并上载”,姓名出现在同列,并以“表格”的形式显示,如图1-171和图1-172所示。

图1-171 关闭并上载

图1-172 表格形式同列显示姓名

将光标放在表格内,选择“设计”→“转换为区域”,可变为普通工作表数据,即得样表所示的结果,如图1-173所示。

图1-173 转换为普通工作表区域