我有非常基本的用户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)
答案 0 :(得分:1)
您应该可以使用VLOOKUP
公式或MATCH
和INDEX
的组合来实现这一目标。
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列。
这里是INDEX
和MATCH
的解决方案-有点难以理解,但更灵活。
=IFERROR(INDEX(D$1:D19,MATCH(Q20,Q$1:Q19,0)),[value for newly found load number])
我喜欢这个。
外部函数说返回列表中的第n个值。内部MATCH
函数说在此列表(Q1:Q19)中找到该值(Q20)。 MATCH
函数的第三个参数0表示匹配必须精确。