【问题标题】:Extract only rows that are not in both sheets into a third sheet仅将不在两个工作表中的行提取到第三个工作表中
【发布时间】:2020-12-08 19:58:48
【问题描述】:

我有 2 个具有相似列值 (legal_id) 的 Excel 工作表。有没有办法只将不在两个工作表中的行提取到第三个工作表中?例如,如果社会安全号码 111111 不在两张表中,则该人员行将被放置在第三张表中。请参见下面的图片。

  • 表 1

  • 表 2

  • Sheet3_DesiredResults

在我因不尝试代码而遭到强烈反对之前,这是我尝试过的,

我认为这个公式会突出显示不在同一张表中的值的 true 或 false,然后我可以删除每个返回 true 的字段以在两个表中,但它不起作用。我不是程序员,我需要帮助。请不要告诉我学习 VBA 教程。我没有制作第三张纸,而是在第一张纸上制作了一个辅助列并使用了公式:

=(ISNA(MATCH(A2,Sheet1!A:A,0)))=FALSE

【问题讨论】:

  • 每个人的“合法身份”是唯一的吗?您是否只需要基于公式的解决方案?最终结果可以分成2个范围?
  • 这个问题看起来很眼熟,虽然用户变了。我当时在上一条评论中所写的仍然是正确的:如果您使用 sheet1 中的公式,您正在检查 sheet1 中所有值的值,这将始终是正确的。
  • 我不知道您所说的在 2 个范围内吐痰是什么意思,但是是的,legal_ids 都是唯一的,它们确实是 SSN。我会采取任何解决方案。我只需要它们不在两个工作表中的所有 legal_id,放入一个单独的工作表或一个公式,该公式可以说明它们是否在两个工作表中,我可以据此删除它们。
  • 好的 FunThomas 感谢您的意见,我是一只小喷火龙,我不知道您在说什么。 Evil Blue Monkey 可以修改我提供的代码来执行此操作吗?
  • 也许 COUNT.IF() 可以完成这项工作。如果 ID 是唯一的,您只需在第三张工作表中创建一个列,在其中计算第一张工作表的任何 ID,该 ID 也在第二张工作表中;然后您使用第二列检查第二张工作表是否与第一张工作表共享任何 ID。我正在写一些东西,看看它是否可行。

标签: excel vba duplicates


【解决方案1】:

就像我的评论中预期的那样,您可能会在第三张表和 COUNT.IF 函数中使用 2 个范围。您需要的公式如下:

=IF(COUNTIF(Sheet2!$A:$A,Sheet1!$A2)=0,Sheet1!A2,0)

.

=IF(COUNTIF(Sheet1!$A:$A,Sheet2!$A2)=0,Sheet2!A2,0)

将它们放在第三张纸的 2 个适当的单元格中(比如说 A2 和 E2),拖动它们以覆盖两个列表。 Sheet1 和 Sheet2 中的空单元格或具有 ID 的单元格将返回 0。如果您不喜欢 0 并且您更喜欢“”,则可以使用这些:

    =IF(IF(COUNTIF(Sheet2!$A:$A,Sheet1!$A2)=0,Sheet1!A2,0)=0,"",IF(COUNTIF(Sheet2!$A:$A,Sheet1!$A2)=0,Sheet1!A2,0))

.

    =IF(IF(COUNTIF(Sheet1!$A:$A,Sheet2!$A2)=0,Sheet2!A2,0)=0,"",IF(COUNTIF(Sheet1!$A:$A,Sheet2!$A2)=0,Sheet2!A2,0))

【讨论】:

  • 我尝试在公式字段中键入此公式并收到此错误:“此公式有问题。不尝试键入公式?当第一个字符是等于 (=) 或减号( - ),excel认为它是一个论坛“......嗯,很好。我不知道现在出了什么问题。我要放弃了。
  • 它们是 2 个不同的公式。每个范围一个。另外,我错误地留下了一些额外的分数。我已经删除了它们。现在可以用了吗?
【解决方案2】:

我已经解决了您的问题。请看下面。

首先,正如预期的那样,为简单起见,我创建了 2 张具有与图像中提到的数据相同的数据的工作表。

Sheet 1 with Helper column

Sheet 2 with Helper column

第2步:为了提高效率,我将工作表数据转换为表格。

第 3 步:我在 Sheet 1 Helper 列中使用了 COUNTIF 函数和 IF 函数。

=IF( COUNTIFS(Sheet2!Legal_id, [@[Legal_id]]) = 0, "N/A","" )

类似地,我们必须在 Sheet 2 Helper 列中实现这个公式。

=IF( COUNTIFS( Book1!Legal_id, [@[Legal_id]]) = 0, "N/A", "")

上述公式的解释: COUNTIF 函数计算Legal_id 对应出现的次数,在Sheet 2 Legal_id 列中。如果count = 0,即表示Legal_id 不存在于Sheet 2 中,因此我们使用IF 语句在Helper 列中分配'N/A' 值,否则没有''。 表 2 的解释相同。

现在我们过滤具有 N/A 值的行以删除,正如您在 cmets 中提到的那样。或通过复制粘贴将其插入到第三张工作表中。

【讨论】:

    【解决方案3】:

    完成任务的最佳方法是使用 vba。但是,如果您想使用ISNA(MATCH 公式,则需要将公式包装在IF 语句中,并将公式放在Sheet3 中的每个单元格中。

    第一步:将下面的公式粘贴到Cell A2

    =IF(ISNA(MATCH(Sheet1!A2,Sheet2!A:A,0)),Sheet1!A2,"")
    

    第 2 步:按住CTRL+SHIFT+ENTER 将其作为数组公式输入

    第 3 步: 将鼠标悬停在单元格右下角的点上并向下拖动到您在 Sheet1 中使用的行数注意: 每一行的公式都会改变

    第 4 步:然后拖动到Column C注意:每列的公式都会改变

    Sheet1 中不在Sheet2 中的数据现在将在Sheet3 中,由空白行分隔,您可以选择空白行并将其删除。

    【讨论】:

      猜你喜欢
      • 2012-08-03
      • 1970-01-01
      • 2018-06-11
      • 1970-01-01
      • 2016-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多