现在我有一个名为sheet1
像图像左侧的工作表
我想自动将所有sheet1
具有列C
=的行复制NO
到工作表sheet2
(如图片右侧所示)。每次我插入sheet1
具有C
列 =的新行时NO
,它都会自动更新sheet2
,索引列E
会自动增加。
谁能帮我?
答案1
这听起来像是数据透视表的工作,但您需要行标题。
首先,设置一个动态命名范围,它将捕获您的列表A:C
并随之增长。为此,请单击功能Name Manager
区中的Formulas
。单击New
,为其命名(我将其命名为rngPivotData
),并将其用于其“引用:”公式:
=OFFSET(Sheet1!$A$1,0,0,MATCH(9E+99,Sheet1!$A:$A),3)
接下来,通过单击单元格E1
然后单击Pivot Table
功能区来添加数据透视表Insert
。
当它询问您要使用的表或范围时,请键入您为动态命名范围选择的名称。
右键单击数据透视表中的某处,然后单击“数据透视表选项...”。在Display
选项卡中,选中“经典数据透视表布局”。这将有助于提供您想要的外观。
将所有三个标题拖到Row Labels
数据透视表窗格的部分,然后筛选Yes/No
仅包含那些的字段No
。
这是最终产品。任何时候您要进行更改,只需在数据透视表中的任意位置单击鼠标右键,然后单击 即可Refresh
。
答案2
由于我没有 Excel 2007,因此我将尽力描述该过程。
在 Sheet2 中,将所有数据与 Sheet1 中的对应数据相等,如下所示:
Excel Web App 不允许在排序时在标题上使用公式,因此我手动输入了名称;但在 Excel 2003 中,我没有遇到这个特殊问题。将该公式扩展到数据范围的最后一行(或无穷大)。现在你有相同的两张表中的数据,但您可以在单独的表中进行筛选而不改变其他工作表。
选择 A 和 B 列,然后点击Data > Filter
。标题上会出现一些箭头按钮。按下 Type 标题上的按钮,然后选择“NO”选项仅有的。最终结果是这样的:
作为参考我使用了这来源。
以下是一种“古老”的做法,我之前只是记得它,它对某些人来说很有价值。
我基于高级过滤来自微软的教程。有些术语可能错误(误译),因为我没有英文版本。
这是我的最终设置,它采用的是葡萄牙语版本的 Excel 2003。从左到右,数据范围(A 和 B)、条件范围(C 和 D)和过滤结果(E 和 F),以及高级过滤对话框的图像。由于 Office 2007 上的新 GUI,这将略有不同。
首先,您需要为每一列创建一个标题。它看起来应该像这样。
然后,转到Data > Advanced Filter
。应该会出现一个菜单,询问您的操作和所需的数据范围、条件范围和复制位置。选择“复制到其他地方”作为操作
您的数据范围就是您的数据。在您的例子中,这将是$A:$C
您的条件范围是您设置要选择数据的条件的范围。为此,请创建一个 C 类型的附件标题和下方NO
。
复制范围是您希望过滤结果所在的位置。只需选择左上角的单元格即可。
按“确定”后,您现在有了一个排序表。但是,此过程不是自动的 - 您必须在添加新数据时执行此操作。