簡體   English   中英

檢查工作表(多張工作表)中是否存在值並返回“條目已存在”-Excel

[英]Check if a value exists in a Worksheet (multiple sheets) and return “Entry already exists” - Excel

我有一個帶有多個帶有行條目的工作表的excel文件,其中每個條目都有多個具有不同信息的列。 我想做的是,每當我輸入一個新條目時,檢查它是否已存在於另一個表(同一文件)中。 那是為了檢查文件中的行是否包含相同的信息,並返回諸如“ Entry has exist”或FALSE之類的信息,或者讓我知道的東西,以使我在文件中沒有兩次相同的條目。

我什至不知道如何開始(或者即使有可能)。 有人可以幫忙嗎?

ps。 抱歉,如果我的問題太復雜了,我找不到更好的方法將其寫成文字。

如果您的數據是在一列或一行中,那么最簡單的方法是使用條件格式。 條件格式->高亮顯示單元格規則->重復值。

如果要檢查不同的工作表或不同的列,請使用MATCH功能。 MATCH返回字符串在數組中的相對位置。 我會看到它像...

=MATCH(NewEntry,ArrayWhereItCouldAppear,0)

如果您在行中輸入條目“ x”,例如102(例如地址為“ B102”),但在行15中已經有條目“ x”(例如地址為“ B15”),那么MATCH將返回“ 15“。

為了使其自動化,您需要進行OFFSET操作以提供最后一行的引用(假設您要添加新行)。 使用類似...

=OFFSET(B1, COUNTA(B:B)-1, 0)

作為您的NewEntry。 偏移實質上是根據條件“移動”您的范圍; 上面的命令指示它返回在單元格B1下的COUNTA(B:B)-1行中找到的任何內容。 COUNTA計算非空單元格,而-1代表表的(可能)標頭。 因此,如果要在第102行中添加“ x”,則該函數將返回“ x”。

最后,您提到過您希望看到TRUE或FALSE。 最簡單的檢查是如果MATCH返回的值大於零,則進行布爾檢查。 但是,MATCH如果找不到條目,​​則不會返回零; 它將返回一個錯誤。 因此,我們需要將公式包裝在IFERROR中。 因此,我們以類似...的結尾

= IFERROR(MATCH(OFFSET(ColumnWhereUniqueIDIs:1,COUNTA(ColumnWhereUniqueIDIs:ColumnWhereUniqueIDIs)-1,0),ArrayWhereItCouldAppear,0),0)> 0

這很酷,因為您可以插入可能出現“ x”的任何數組。 您可以跨多個工作表執行此操作(只需添加公式即可,例如“檢查此數組” +“檢查此數組” + ...)。

我希望這有幫助。 如果有人可以提出更簡單的解決方案,請執行!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM