练习题044:如何粘贴数据到筛选出的记录行
在工作中我们经常会有这种需求:将已有表格已筛选的数据粘贴到某个已经筛选的表格的记录行。如下图
需要将上面图表的C3:C21已经筛选的行(不包含已隐藏行的数据),复制粘贴到下面表格相应的行(要粘贴的行与目标行位置两两对应),并且粘贴为数值,而不能是公式。
如果我们直接选定“数据1”表格的C3:C21,Ctrl+C复制时,此时只会复制筛选出的单元格,将其再粘贴到”练习题044“的C3:C21单元格,结果是不正确的:
要达到上面的效果,有以下几种方法,各方法有各自的优缺点和局限性
方法一:两次复制粘贴法(仅限于2003版)
选定“数据1”表格的C3:C21,Ctrl+C复制后,然后选定“练习题044”表格的C3格,粘贴,此时粘贴结果是不正确的,然后撤销此粘贴操作,再次粘贴。这时结果就是正确的了。
此方法仅限于Excel 2003版。
方法二:选择性粘贴-跳过空值
如果“数据1”表格未筛选出的行是空值,可以先取消“数据1”表格的筛选,复制其C3:C21单元格区域,再选定“数据1”表格的C3单元格,右键-选择性粘贴,勾选上“跳过空单元”,再点击“确定”。
但是这种方法仅限于隐藏的行是空值,在实际工作中这种情况很少见。故,此方法有很大的局限性。
方法3:填充法
先取消“数据1”表格的筛选,复制其C3:C21单元格区域,然后选定“练习题044”表格的D3单元格,Ctrl+V粘贴。然后再选定“练习题044”表格的D3:D21单元格,拖动填充柄,将其填充到C3:C21。
如果筛选条件比较复杂,将“数据1”表格取消筛选后,要再次还原之前的筛选比较麻烦,大家可采用保存视图的方式,取消筛选后,点击已保存的自定义视图进行快速筛选。
方法4:断开链接法
步骤1:将“数据1”工作表复制,复制的工作表名为“数据1 (2)”,选定“练习题044”表格的C3单元格,输入公式:
='数据1 (2)'!C3
步骤2:然后将C3单元格的公式下拉填充到C5:C21单元格区域。
步骤3:在“数据1 (2)”工作表标签点右键,移动或复制工作表,选择“新工作簿”,
步骤4:将“数据1 (2)”工作表转移到新建的《工作簿1》。
步骤5:此时,“练习题044”表格的C3:C21单元格区域单元格的公式会变为下面的样子
='[工作簿1.xlsx]数据1 (2)'!C3
点击“数据”选项卡下的“编辑链接”按钮,在弹出的“编辑链接”对话框,选择“工作簿1”,然后点击“断开链接”,在弹出的确认对话框中点击“断开链接”。
此方法是利用“断开链接”功能将链接公式转换为数值。
注意:本工作簿中的链接不会出现在“断开链接”选择框,故必须得将其转换出本工作簿。
在前面问题的基础上我们将需求再改一下:有时我们要粘贴的数据和源数据并不是刚好一一对应,而是要将源数据依次填列到目标表格筛选出的行。比如将下面“数据2”表格的C2、C3、C4、C5......依次填到目标表格“练习题044“所筛选出来的C3、C5、C8、C10....
这个时候就只能使用公式。操作步骤:
步骤1:还是先将表格“数据2”复制一份,表格名为”数据2(2)“
步骤2:”练习题044“的C3单元格输入下面的公式:
=INDEX('数据2 (2)'!$C$2:$C$12,SUBTOTAL(3,$A$3:A3))
步骤3:再将”数据2(2)“表格转移出本工作簿,再在“数据”选项卡断开公式的链接。详细步骤参见前面的方法四”断开链接“法。
当然也可以使用INDIRECT函数,但不能使用下面的公式
=INDIRECT("'[工作簿3]数据2 (2)'!C"&SUBTOTAL(3,$A$3:A3)+1)
因为这个公式由于没有链接外部工作簿,无法断开链接,所以要在公式加一个外部链接'[工作簿3]数据2 (2)'!$D$2,此单元格要为空,不能有任何数值。
修改后的公式:
=INDIRECT("'[工作簿3]数据2 (2)'!C"&'[工作簿3]数据2 (2)'!$D$2&SUBTOTAL(3,$A$3:A3)+1)