如果过滤器被“删除”,我需要获取所有记录,我需要在同一个Excel中的另一个工作表中自动填充它。例如,
表1:
Filter | Id | Name | Username
Added | 58621 | IDR User2 | AIG_IDR
Deleted | 59088 | Clearwater Analytics | AIGTessa2
Deleted | 59422 | Janine Mullin | 32313082
Added | 59424 | Jonathan Lawless | 3231367
在表2中,它应自动添加或列出所有已删除的过滤器。
Filter | Id | Name | Username
Deleted | 59088 | Clearwater Analytics | AIGTessa2
Deleted | 59422 | Janine Mullin | 32313082
有可能吗?如果是的话,你能告诉我如何做到这一点吗?使用条件公式。
谢谢。
这样的东西适用于小调整:
Dim shtNew As Worksheet, shtOrg As Worksheet
Set shtOrg = ActiveSheet
Set shtNew = Sheets.Add
With shtOrg.Range("A1").CurrentRegion
.AutoFilter Field:=1, Criteria1:="Deleted"
.SpecialCells(xlCellTypeVisible).Copy shtNew.Cells(1, 1)
.AutoFilter
End With
假设您的工作表1数据占据列A到D,每个行项目都有一个唯一的ID(在B列中),并且您只想从工作表1到工作表2中提取“已删除”的行项目,那么使用INDEX, SMALL and ROW
的数组公式应该足以获取已删除条目的ID,以及一个简单的INDEX + MATCH
组合,用于引用返回的ID的其他列数据。
假设我们要在表2的第2行中启动列表,请在单元格B2中复制以下公式:
=iferror(index(sheet1!b:b,small(if(sheet1!a:a="deleted",row(sheet1!a:a)),row(1:1))),"")
返回上述公式时,请务必按CONTROL + SHIFT + ENTER
。执行此操作后,您现在可以向下拖动公式以返回已删除条目的所有ID。当它开始返回空白值时,这意味着已经返回了已删除条目的所有ID。
接下来,在工作表2的A,C和D列中,输入以下内容:
=iferror(index(sheet1!a:a,match(b2,sheet1!b:b,0)),"")
申请时不需要CONTROL+SHIFT+ENTER
。为此,只需更改a:c到c:c表示Name,d:d表示用户名。同样,这假设第一个ID值在第2行(单元格B2)中,我们引用了MATCH
。