識別非重複項並複製到 Excel 上的新列

識別非重複項並複製到 Excel 上的新列

我有一組兩列。 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))

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 萬行的整列中的每個儲存格進行計算)。因此,由於優選特定範圍,因此維護此類公式可能會很痛苦。

為了使公式發揮作用,還需要一個附加列。我的意思是,上面第一個替代方案中描述的「步入」專欄。因此,如果您選擇此替代方案,總共將多出 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)),
   "")

在此輸入影像描述

相關內容