Excel2007版,如何在符合条件时将单元格内容复制到另一页?

Excel2007版,如何在符合条件时将某一单元格内容复制到另一页指定列?或许要用到VBA。
条件:H列单元格出现黄色填充。
要求:将出现黄色填充对应的E列数据或内容,复制到,另一页的指定位置“扣分原因”下,从上到下按顺序排列。非常感谢你们的付出。。。

选中H列,按Ctrl+F快捷键调出查找窗口,点“选项”,点“格式”,将要查找的背景颜色设置成黄色,点“查找全部”。这时可见H列所有黄色单元格都被找到了,按Ctrl+A选中所有的黄色单元格,这时鼠标不要乱点,将鼠标移到公式编辑栏(fx后面这个长框内),输入一个字母A,按Ctrl+回车,所有黄色单元格都被填充进一个字母A。

在J3单元格输入公式=IFERROR(INDEX(E$1:E$100,SMALL(IF(H$1:H$100="A",ROW($1:$100)),ROW(A1))),"")

数组公式,Ctrl+Shift+回车,下拉。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-12-15
在工作中,我们有时会遇到将汇总表中的数据提取到其他工作表的情形。当然我们可以利用Excel的筛选功能,将满足条件的数据筛选后复制粘贴到其他工作表。但是当汇总表中的数据有新增或修改时,我们就要重复筛选复制粘贴操作。本次教程将向大家介绍通过函数提取满足条件的数据,并且当数据更新时,可以自动更新提取的数据,而不必重复操作。

一、问题描述

如下图所示,“成绩汇总表”为1班和2班的语文及数学成绩汇总表。现在希望完成以下要求:

1、将“成绩汇总表”中1班语文成绩自动提取到工作表“1班语文成绩”;

2、将“成绩汇总表”中1班数学成绩自动提取到工作表“1班数学成绩”;

3、将“成绩汇总表”中2班语文成绩自动提取到工作表“2班语文成绩”;

4、将“成绩汇总表”中2班数学成绩自动提取到工作表“2班数学成绩”;

5、后续在“成绩汇总表”中新增1班和2班其他同学的语文及数学成绩,新增的成绩记录能自动提取到对应的分表中。

二、解决方法

1、定义名称。将“成绩汇总表”中的单元格区域定义名称,定义的名称如下图所示。

为了完成要求5,即当成绩汇总表新增数据时,各分表能自动提取到新增的数据,定义的名称所引用位置远超过当前的数据区域。比如名称“班级”引用的单元格区域是A2:A10000,远超过当前“班级”列的数据区域A2:A17。

2、在“1班语文成绩”工作表A2单元格输入以下公式:

=IFERROR(INDEX(成绩汇总,SMALL(IF((班级="1班")*(科目="语文"),ROW(班级)-1),ROW(A1)),COLUMN(A1)),"")

由于该公式是数组公式,因此需按Ctrl+Shift+Enter完成公式的输入。

在A2单元格输入公式后,拖动填充柄将公式向右向下复制到其他单元格。提取的数据结果如下图所示:

3、将该公式分别复制到其他分表中,并相应修改if函数中的判断条件。

在“1班数学成绩”分表的A2单元格公式为

=IFERROR(INDEX(成绩汇总,SMALL(IF((班级="1班")*(科目="数学"),ROW(班级)-1),ROW(A1)),COLUMN(A1)),"")

在“2班语文成绩”分表的A2单元格公式为

=IFERROR(INDEX(成绩汇总,SMALL(IF((班级="2班")*(科目="语文"),ROW(班级)-1),ROW(A1)),COLUMN(A1)),"")

在“2班数学成绩”分表的A2单元格公式为

=IFERROR(INDEX(成绩汇总,SMALL(IF((班级="2班")*(科目="数学"),ROW(班级)-1),ROW(A1)),COLUMN(A1)),"")

三、公式解析

公式解析(以分表“1班语文成绩”A2单元格的公式进行说明)

①IF函数用于获得满足条件的数据所在的行号。 IF((班级="1班")*(科目="语文"),ROW(班级)-1)表示在“成绩汇总表”中,当“班级”为“1班”,“科目”为“语文”时,返回数据所在行号-1,否则返回FALSE。该IF公式生成的结果为

{False;False;3;False;False;6;False;False;False;False;False;12;False;False;15;False}。

②ROW函数用于返回满足判断条件的数据所在行号,之所以减1,是为了获得该数据在定义的名称“成绩汇总”(单元格区域A2:A10000)中所在的行号。比如“1班”的“亚瑟”在工作表中位于第4行数据,ROW函数的结果是4,但是该行数据相对于定义的名称“成绩汇总”则位于第3行。

③SMALL函数用于返回IF函数生成的数组的第k个最小值。比如ROW(A1)=1,则SMALL(IF((班级="1班")*(科目="语文"),ROW(班级)-1),ROW(A1))用于返回IF函数结果的第1个最小值,即3。

④INDEX函数用于返回指定行列交叉处单元格的值,指定的行由公式IF+ROW+SMALL确定,指定的列由COLUMN函数确定。

⑤IFERROR函数用于屏蔽错误值。当所有符合条件的结果均已查找并返回到对应分表时,返回空值。
第2个回答  2021-12-16
首先数据筛选H列---点击筛选按钮将颜色部分筛选出来----选择E列需要复制的内容----ctrl+G---定位条件---可见单元格-----复制ctrl+C---粘贴ctrl+V。
注意:在复制或者粘贴过程中会出现无法复制或者粘贴情况,说明你有部分合并过的单元格,建议先将合并过的单元格分解进行操作。
希望我的回答对你有所帮助。
第3个回答  2021-12-15
表格中E列存在多行合并的情况,只有将J列对应的单元格也对应合并了,才能将E列的内容整列复制过去。