唯一ID-查找并删除重复项并替换

时间:2018-10-06 01:10:08

标签: excel duplicates unique id

我有非常基本的用户Excel知识。我有一个电子表格,可以跟踪重新加载数据。我输入的每个载荷都会获得一个唯一的载荷号,该载荷号会根据口径名称和递增的数字使用公式自动计算得出。到目前为止,即使之前已重复输入,我输入的每个负载都会得到一个数字。我经常重复的热门载荷都相同,除了发球的日期和回合数外,但目前将具有不同的载荷数。有没有一种方法可以跳过这些重复的载荷并为其分配先前的载荷号,或者根本不使用公式而不是手动分配载荷号?

我知道这需要很多,但我将不胜感激!如果这不是解决此问题的最佳方法,我当然会提出建议。

示例工作簿:

https://www.dropbox.com/s/v5y1ufxjiosmnap/My%20Reloading%20Data%20-%20Sample.xlsx?dl=0

这是我到目前为止尝试过的:

在第2列中,组合所有条件。

=C17&E17&F17&G17&H17&L17&M17&N17&P17

在R2列中查找重复项。

=IF(COUNTIF($Q$2:$Q17, $Q17)>1, "Duplicate", "")

D2是“加载号”列。

=IF(R17="Duplicate","",(TEXT(C17,0)&"-"&TEXT(COUNTIF($C$2:C17,C17),"000")))

这将跳过重复的加载,并且不给它们加载#将单元格留空。我很想找到并匹配该负载#应该是什么并插入它。同样,当顺序编号恢复时,其作用就好像是计算重复行一样。例如D2可能看起来像:

9mm-001
9mm-002

(跳过重复,留空,但希望它查找,匹配并插入重复的负载#)

9mm-004 (I'd like to to be 9mm-003)

1 个答案:

答案 0 :(得分:1)

您应该可以使用VLOOKUP公式或MATCHINDEX的组合来实现这一目标。

VLOOKUP(垂直查找)在另一个单元格中查找匹配项,并从偏移列返回一个值。如果您使用FALSE作为最后一个参数,则不匹配项将返回#N / A错误。

因此,例如,在D20中,假设列R中有D的副本,则可以使用Q列作为行列式,使用以下内容:

=IFERROR(VLOOKUP(Q20,Q$1:R19,2,FALSE),[value for newly found loadno])

此公式的作用是计算一个VLOOKUP-如果找不到记录,请计算一个新值。 VLOOKUP将查看当前行Q列中的级联键,搜索所有先前的列(请注意,它锚定在第1行,但不锚定范围的底部,因此您可以复制公式),它使用该列2(Q为第1列,R为第2列)作为结果,并要求完全匹配(FALSE)。如果找不到,请返回NA,然后让IFERROR的后半部分接管。

看看你怎么做。

MATCH INDEX可能会更好,因为VLOOKUP只需要在键的右边看,就不需要额外的R列。

这里是INDEXMATCH的解决方案-有点难以理解,但更灵活。

=IFERROR(INDEX(D$1:D19,MATCH(Q20,Q$1:Q19,0)),[value for newly found load number])

我喜欢这个。

外部函数说返回列表中的第n个值。内部MATCH函数说在此列表(Q1:Q19)中找到该值(Q20)。 MATCH函数的第三个参数0表示匹配必须精确。