我有一組兩列。 F 欄有預定參加者的姓名清單。當與會者將徽章掃描到 A 列時,C 列使用「匹配和索引」來提取與會者姓名。
在 C 列和 F 列上使用「唯一」條件格式,我可以將直接存取識別為將在 C 列上提取的名稱不會出現在 F 列上的預定清單中。
我正在尋找一個公式,而不是使用巨集將walk ins(不重複的值)拉到名為“walk ins”的單獨列上。
高級過濾器以及公式“唯一”在這種情況下無法工作,因為我正在尋找僅出現一次的值。為什麼?因為如果「John」同時出現在 C 和 F 欄位上,則進階篩選器和唯一公式會將單一「John」記錄為唯一值。但我對此感興趣的不是約翰,他出現在兩列上,而是保羅,他被拉到 C 列,但不在 F 列。
簡而言之 - 我需要識別“非重複或單一值”而不是唯一值。
首先十分感謝。
你們中的大多數人已經了解了我正在尋找的內容,但為了消除任何誤解,我提供了一個範例。在現實生活中,我手動將步入記錄記錄在同一工作簿的另一個工作表的列中。
答案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 萬行的整列中的每個儲存格進行計算)。因此,由於優選特定範圍,因此維護此類公式可能會很痛苦。
為了使公式發揮作用,還需要一個附加列。我的意思是,上面第一個替代方案中描述的「步入」專欄。因此,如果您選擇此替代方案,總共將多出 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)),
"")