获取excel中从1sheet到另一张表的所有记录

问题描述 投票:0回答:2

如果过滤器被“删除”,我需要获取所有记录,我需要在同一个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

有可能吗?如果是的话,你能告诉我如何做到这一点吗?使用条件公式。

谢谢。

excel excel-formula excel-2010 excel-2007
2个回答
1
投票

这样的东西适用于小调整:

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

0
投票

假设您的工作表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

© www.soinside.com 2019 - 2024. All rights reserved.