excel如何自动生成序号和编号(设置excel相同内容自动序号)

在EXCEl的实际运用中,经常会遇到编号的问题。比如小Z童鞋在最近的工作中遇到了这样一个问题,单位发布公文,给公文编号。由于公文有不同的类型,编号由于类型不同,所以没有绝对的联系,每次编号,都得回看上次的编号位置,如图:

excel如何自动生成序号和编号(设置excel相同内容自动序号)

按照单位要求,公文编号人事为1,综合为2,后勤为3,然后各自按顺序编号,小Z童鞋就在思考,可否让EXCEL自动编号呢?

我们分析一下编号,2018213,前4位是当前的年份,第5位是公文类型,6和7位是公文编号。这里我们可以利用文本连接符”&”,以及IF判断还有COUNGIF计数来进行综合完成。

首先我们利用数据验证,完成公文的类型选择,操作如下:

新建一个工作表,输入公文类型:

然后在主表中,进行数据验证设置:

在弹出的属性窗口中操作如下:

我们可以看到,在主表的类型列,已经产生变化:

就只能做如下选择,当然,如果公文类型后面有新增,可以在公文类型里面增加和修改。

重头戏来了,如何编号呢?

前四位数字我们可以用文本直接进行,因为每年修改一次,几乎没有工作量:

所以公式第一部分应该是:

“2018”&

公文类型判断可以用到IFS条件函数:

人事为1,后勤为2,综合为3,其他为4,可以这样来写:

IFS(A2=”人事”,1,A2=”后勤”,2,A2=”综合”,3,A2=”其他”,4)

这个公式能看懂吗?

两者连接:

=”2018″& IFS(A2=”人事”,1,A2=”后勤”,2,A2=”综合”,3,A2=”其他”,4)

我们放到excel里面看一下:

已经满足年份和对应类型编号了,最后就是顺序编号。我们来看一下编号的依据,是根据同一类型顺序编号。我们换一个思考方式,就是计算这列之上还有多少个相同类型,比如这列前面已经出现了10个人事公文,那么这一列的编号就是11。

所以我们就要用到countif,理解了就很简单,公式也很简单:

countif($A$2:A2,A2)

是不是看着有点晕,全是A2。没关系,我们来捋一捋:

Countif(范围,条件),$A$2:A2是范围,注意绝对引用和相对引用:从绝对的A2单元格开始,到相对的当前单元格,只不过此时是A2,需要仔细想一下。然后当前的条件是A2,在$A$2:A2范围内查找计数。

可能还是很复杂,我们看下一个单元格更容易理解,如果在B3单元格:

Countif($A$2:A3,A3)

是不是就容易弄错了,A3的条件到A2:A3中去查找个数。

最后我们考虑编号留余的问题,也就是留0的问题。

如果是个位数,补足两个0,如果是双位数,补足一个0,如果百位数,则不用0补足。

如何判断呢?这里我们来用countif的计数结果来除以10或者100来判断:

If(Countif($A$2:A2,A2)/10<1,”00”,if(Countif($A$2:A2,A2)/10<10,”0”,””))

大家能看懂这个公式吗?

我们从最外层解释:

判断条件1:Countif($A$2:A2,A2)/10<1 (countif的计数是否是个位数)

条件为真: 用00补足

条件为假: 进一步判断if(Countif($A$2:A2,A2)/10<10,”0”,””)

条件2: Countif($A$2:A2,A2)/10<10 (countif的计数是否为两位数)

条件为真:用0补足

条件为假:不用0 (因为已经是三位数了)

我们把公式完整连接起来:

=”2018″&IFS(A2=”人事”,1,A2=”后勤”,2,A2=”综合”,3,A2=”其他”,4)& If(countif($A$2:A2,A2)/10<1,”00”,if(Countif($A$2:A2,A2)/10<10,”0”,””))& countif($A$2:A2,A2)

我们还是放到excel里面看一下结果:

至少B2单元格正确显示,我们把B列单元格往下拖动:

我们看到相应的类型和编号都已经正确了,达到我们预期的要求,包括A14单元格,第10个人事文件,他的对应B2编号,也顺利识别。为了美化,其实还可以在用一次if判断,如果类型是空值,编号B列对应单元格也是空值。这里不再赘述。

好了,是不是已经达到要求了呢。今天的内容主要是综合性较强,大家要好好理解一下。Excel其实功能很强大哦!!

发表评论

登录后才能评论