识别非重复项并复制到 Excel 上的新列

识别非重复项并复制到 Excel 上的新列

我有一组两列。F 列是预定参加者的姓名列表。C 列使用 Match & Index 在参加者将徽章扫描到 A 列时提取他们的姓名。我对 C 列和 F 列感兴趣。

在 C 列和 F 列上使用条件格式“唯一”,我可以识别临时访客,因为在 C 列中调出的名称不会出现在 F 列的预定列表中。

我正在寻找一个公式,而不是使用宏将 walk ins(不重复的值)拉到名为“walk ins”的单独列中。

在这种情况下,高级筛选以及公式“unique”无法工作,因为我正在寻找只出现一次的值。为什么?因为如果“John”同时出现在 C 列和 F 列中,那么高级筛选和唯一公式将记录单个“John”作为唯一值。但我感兴趣的不是同时出现在两列中的 John,而是出现在 C 列但不在 F 列中的 Paul。

简而言之 - 我需要识别“非重复或单一值”而不是唯一值。

首先十分感谢。


你们大多数人已经了解我在寻找什么,但为了消除任何误解,我提供了一个例子。在现实生活中,我手动将入场人数记录在同一工作簿的另一个工作表的一列中。

我正在看的例子

答案1

如果您有 Office 365 Excel,则可以使用以下方式生成访客列表:

=LET(x,1/ISNA(MATCH(Attendees,Scheduled,0))*ROW(Attendees),y,AGGREGATE(15,6,x,SEQUENCE(COUNT(x)))-1,INDEX(Attendees,y))

AttendeesScheduled参考明显的范围。

在此处输入图片描述

如果您拥有早期版本,则可以采用更复杂的公式,但了解您使用的是哪个版本的 Excel 会很有帮助。

一种可能性是:

=INDEX(Attendees,AGGREGATE(15,6,1/ISNA(MATCH(Attendees,Scheduled,0))*ROW(Attendees)-1,ROW(INDEX($A:$A,1):INDEX($A:$A,COUNT(1/ISNA(MATCH(Attendees,Scheduled,0))*ROW(Attendees))))))

您可能需要或不需要“确认”数组公式按住ctrl+shift并点击enter。如果操作正确,Excel 将{...}在公式栏中看到括号。

请注意,在这两个公式中,-1(如)AGGREGATE(...)-1是为了调整定义范围的标题行以便能够使用该INDEX函数。该INDEX函数查看数组中的位置;而ROW查看位置的绝对行号。如果您的范围不是从开始Row 1,则您需要相应地调整该因素。

答案2

阅读您的描述我得到了以下数据:

在此处输入图片描述

保罗走了进来,其他人则安排了出席时间。(列A不重要。)


我认为最简单的方法是使用MATCH。例如,D2您可以使用类似这样的内容:

=IFERROR(IF(MATCH(C2,F:F,0),"scheduled"),"WALK IN")

在此处输入图片描述C


作为另一种方法,你可以条件格式列上的公式C

=AND(NOT(IFERROR(MATCH(C1,F:F,0),0)),C1<>"", C1<>"attendees")

在此处输入图片描述


正如你所坚持的那样,这是包含唯一值的单独列的公式(在这种情况下只有保罗)。

这是一个数组公式(数组公式使用Ctrl+Shift+Enter而不是通常的 Enter 键)。

数组公式不适用于 Excel 表格对象,当提供特定范围而不是整列时,它们的效果最佳(因为它们实际上会对整列 100 万行中的每个单元格进行计算)。因此,由于特定范围是首选,因此维护此类公式可能会很麻烦。

要使此公式有效,还需要一个额外的列。我指的是上面第一个替代方案中描述的“walk ins”列。因此,如果您选择此替代方案,总共将有 2 个额外的列。

如果您仍想这样做,请遵循以下公式:

=IFERROR(
   INDEX(
      $C$2:$C$5,
      SMALL(
         IF(
            $D$2:$D$5<>"WALK IN",
            "",
            ROW($D$2:$D$5)-MIN(ROW($D$2:$D$5))+1),
         ROW(D2)-1)),
   "")

在此处输入图片描述

相关内容