检查重复项并返回下一个值

时间:2019-01-30 00:50:49

标签: excel vba excel-2010 excel-2007

这是我对我的问题的解释。我有2列的3万行,如下所示:

  • 列A:代码。形式:AA。
  • B列:代码。形式:AA-i。将ia运行到z,然后选择1-100

我想找到下一个Aa-i,并且不要与B列中的任何Aa-i重复。

我该怎么办?我真的需要帮助非常感谢任何帮助的想法。

Example

1 个答案:

答案 0 :(得分:0)

我认为您想在结果列中返回A-12,并在使用A-12后返回A-13。如果是这样,您可以在结果列中使用该公式:它将为您提供下一个AA-,后跟数字,并检查该值是否在以前使用过...

= IF((“” AA-“&VALUE(RIGHT(OFFSET(A1,COUNTA(A:A)-1,0,1,1),(LEN(OFFSET(A1,COUNTA(A:A)- 1,0,1,1)))-(FIND(“ @”,SUBSTITUTE(OFFSET(A1,COUNTA(A:A)-1,0,1,1),“-”,“ @”))) ))+ 1)= A2:A4,“ AA-”&VALUE(RIGHT(OFFSET(A1,COUNTA(A:A)-1,0,1,1),(LEN(OFFSET(A1,COUNTA(A: A)-1,0,1,1)))-(FIND(“ @”,SUBSTITUTE(OFFSET(A1,COUNTA(A:A)-1,0,1,1),“-”,“ @” )))))+ 2,“ AA-”&值(RIGHT(OFFSET(A1,COUNTA(A:A)-1,0,1,1),(LEN(OFFSET(A1,COUNTA(A:A)) -1,0,1,1)))-(FIND(“ @”,SUBSTITUTE(OFFSET(A1,COUNTA(A:A)-1,0,1,1),“-”,“ @”)) )))+ 1)

公式变得非常混乱,所以让我解释一下: 在您的列中找到最后一个条目:= OFFSET(A1,COUNTA(A:A)-1,0,1,1) 在字符串中查找“-”的位置:= FIND(“ @”,SUBSTITUTE(OFFSET(A1,COUNTA(A:A)-1,0,1,1),“-”,“ @”)) 查找字符串的长度:= LEN(OFFSET(A1,COUNTA(A:A)-1,0,1,1)) 使用权利和价值功能找出最后使用的数字。 在结果中添加一个,并在结果中连接“ AA-”。 使用IF数组函数查找最终输出是否较早使用,如果为true,则返回下一个数字,否则使用相同的结果。

不要因为按数组公式而不要按CTRL + SHFT + Enter 假设您的数据已按照上面的显示进行排序。

希望它能解决您的查询。