我有一组两列。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))
Attendees
并Scheduled
参考明显的范围。
如果您拥有早期版本,则可以采用更复杂的公式,但了解您使用的是哪个版本的 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
:
=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)),
"")