2015-11-05 110 views
0

在Excel 2010中,我有一个以前使用过的序列号列表,我想要保留该序列号,并且需要创建一个公式,该公式将以我提供的一个数字开头,但绕过我保留列表中的那些。序列号和保留列表号码都可以是数千条记录。我保留的序列号是:在某个序列中跳过某些数字

Reserved Numbers

如果我给我的序列150开始编号,我希望按如下方式分配我的序列号:

Sequence numbers that skip reserved ones

其中序列跳过数字156231

我已经看到了一种创建自定义列表的方式,但这恰恰相反。

我该如何做到这一点?

+1

你真的想把“SEQ”文本作为输出数字的一部分吗? –

+0

@ExcelHero - 是的,但它不一定是。既然这是一个字面意思,我可以在我得到跳过保留字的数字之后加上它。 –

回答

1

在单元M2输入公式:

=MAX(start,M1)+1+(IFERROR(MATCH(MAX(start,M1)+1,rsv,),0)>0) 

和向下复制。

start是起始数字(例如K2)的单元格。

rsv是保留号码的列表。

UPDATE

这里是另一个式克服了与连续的保留数的问题:

=INDEX(ROW(OFFSET($A$1,start-1,,999)),MATCH(1,ISERROR(MATCH(ROW(OFFSET($A$1,start-1,,999)),rsv,))*(ROW(OFFSET($A$1,start-1,,999))>MAX(M1,start)),)) 

这是一个阵列式,并且必须以Ctrl键 + 移位来确认+ 输入

+0

它有一个小问题 - 它工作正常,如果保留的数字不是顺序的。如果它们是连续的,它会执行第一个操作(并跳过它),但第二个操作使用其中一个保留的数字。 –

+1

啊,我明白了。这很复杂。什么是最大顺序? –

+0

连续数字的数量在不断变化,但乍一看,我没有看到任何超过8-10的连续数字。 –

0

假设你跳过的数字本身并不是连续的,这个公式将工作:

=IF(COUNTIF(H2:H4,K2+1)>0,K2+2,K2+1) 

这是假设你的起始编号为K2,而你避免范围为H2:H4。

+0

它是一种混合物。我想保留的一些序列中有几十个连续的数字。在其他情况下,它们不是顺序的。 –