检查工作表中是否存在值(多个工作表)并返回“条目已存在” - Excel

时间:2016-07-18 11:40:31

标签: excel

我有一个excel文件,其中包含多个带有行条目的工作表,其中每个条目都有多个具有不同信息的列。 我想要做的是,每次我输入一个新条目,检查它是否已存在于另一张(同一文件)中。那就是检查文件中的一行是否包含相同的信息,并返回“条目已存在”或FALSE或任何让我知道的内容,以便我在文件中没有两次相同的条目。

我不知道如何开始(或者即使可能)。有人可以帮忙吗?

PS。对不起,如果我的问题太复杂了,我找不到更好的方式将其写成文字。

1 个答案:

答案 0 :(得分:0)

如果您的数据在一列或一行中,通过faaar最简单的方法是使用条件格式;条件格式 - >突出显示单元格规则 - >重复值。

如果要查看不同的工作表或不同的列,请使用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”的任何数组。您可以跨多个工作表执行此操作(只需添加公式,如“检查此数组”+“检查此数组”+ ...)。

我希望这会有所帮助。如果有人能提出更简单的解决方案,请做!