找到特定模式中缺少的ID

时间:2014-11-03 19:28:22

标签: excel excel-vba excel-formula vba

我正在寻找一种方法来查找一系列单元格中缺少的ID。问题是,有一个模式,而不是一个纯数字 - 它是PW140000023。另一件可能使此搜索复杂化的事情是存在重复的ID,这是可以的。我找到了这个表达式:

SMALL(IF(ISNA(MATCH(ROW(A1:A30),A1:A30,0)),ROW(A1:A30)),ROW(A1))

虽然它没有产生任何结果。如何根据我的需要修改它?

缺少ID的示例:

PW140000023
PW140000023
PW140000025  'missing PW140000024
PW140000026

由于

2 个答案:

答案 0 :(得分:2)

假设数据在A1中开始,请在B2中输入并复制:

=IF(MID(A2,3,99)-MID(A1,3,99)>2,"missing PW"&MID(A1,3,99)+1&" - PW"&MID(A2,3,99)-1,
    IF(MID(A2,3,99)-MID(A1,3,99)>1,"missing PW"&MID(A1,3,99)+1,"")
 )

输出:

enter image description here

这是一种蛮力的解决方案。

这是一个较短的解决方案,有32个字符,但可能有点令人困惑:

=TRIM(LEFT(
  "missing PW"&MID(A1,3,99)+1&REPT(" ",99)&"-PW"&MID(A2,3,99)-1,
  MAX(0,(MID(A2,3,99)-MID(A1,3,99)-1))*99)
 )

答案 1 :(得分:1)

不使用VBA,您可以在每个ID旁边的新列中添加公式。假设您的ID是从第1行开始的A列,则以下将在缺少ID之后的行上显示FALSE:

=COUNTIF(A:A, "PW" & RIGHT(A1, 9)-1)>0

您可以将其添加到B1,然后复制该列。