我可以根据另一个内容过滤一个Excel表吗?
我有两个excel文件(实际上,他们是XML文件,但通常由我的用户在excel中打开)。 他们每个只是一张桌子。 这些表格有一个“ID”文本列。
我想让我的用户查看其他文件中没有匹配行(基于ID列)的每个文件的行。 表格1:
|Some words1| IdA | Some more words1| |Some words2| IdB | Some more words2| |Some words3| IdD | Some more words3|
表2:
|Some words4| IdC | Some more words4| |Some words5| IdA | Some more words5| |Some words6| IdB | Some more words6| |Some words7| IdE | Some more words7|
既然IdA和IdB出现在两个表中,我希望忽略它们因此,我想提取
Table1_Filtered:
|Some words3| IdD | Some more words3|
Table2_Filtered:
|Some words4| IdC | Some more words4| |Some words7| IdE | Some more words7|
我可以使用Excelfunction吗? 或者,我可以用最less的代码来做到吗?
我想一个解决scheme是将表复制到同一个Excel实例上的单独工作表中,并使用公式列扩展两个表,创build公式列,每列检查其他表的ID列是否匹配文本。
Table1_WithFormulaColumn:
|Some words1| IdA | Some more words1|**True** |Some words2| IdB | Some more words2|**True** |Some words3| IdD | Some more words3|**False**
….之后,这是一个正常的excel过滤问题。 我不是正面的VBA代码看起来像(我是C#),但我认为它是可以解决的。
有没有其他的方法? 或者这是最好的方法,你能告诉我代码是什么吗?
我的用户正在使用Excel 2013
您可以在Excel中打开这两个文件,并使用VLOOKUP检查值是否存在,并在其周围包含If(ISERROR()),并返回true或false。
如果如上所述,数据跨越列A,B和C,则可以使用以下公式(针对每个文件进行调整)。
=IF(ISERROR(VLOOKUP(B1,<WorkbookToCheck>!B:B,1,False))=TRUE,"X","")
如果ID不存在,WorkbookToCheck则公式将返回X,否则它将返回空白。