HELLO,大家好,又跟大家见面啦。最近单位给廉价“帮帮”布置了好多工作,很多小伙伴的问题都没来得及回复和解决,真的要说声抱歉了。最近一个小伙伴,问我了多次,自动序号的问题。看了上几期的讲解,还没有茅塞顿开。对于多列判断有无,智能添加序号。今天一次性讲完,还有课后作业噢,能回答的小伙伴请留言,我来打分。

大家还记得前几天讲过的自动序号,当时仅以B列的有无进行判断,自动生成A列的序号,空格留号占位。

小伙伴的问题就是,如果BCD列要同时判断,填写其中一个就要生成序号怎么办?在上次的基础上,IF函数后面嵌套一个OR函数,分别以BCD单元格进行判断<>""(是否是空格),如果其中一个并列条件成立,则结果直接返回ROW()-1,如果并列条件都不成立,直接返回空格。

PS:很想录视频讲解,但是但是真的工作太忙了。大家谅解一下,不懂函数参数,如何填写,可以看我以前的教学视频,都讲过噢。

同理,如果三列必须全部填写完才能生成序号,我们将OR换成AND,AND函数就是并列条件全部成立,返回序号,有一个不成立,返回空格。

咱们向下复制公式,大家看,这样做就满足了小伙伴的要求。

但是以行号作为判断条件,有一定的缺陷,就是我们在首行或者表头添加行的时候,序号挤压会发生变化。你需要调整ROW()-1的参数,重新复制函数。(以行号作为判断条件,对于固定表格配合嵌套函数,生成工号是绝佳的方法噢)

我们来进阶一下,对于连续区域的条件判断,如果列数较多,OR和AND函数显然书写繁复。这里我们就用加入计数判断句,COUNTA(B2:D2)>=1,以B2到D2的区域进行计数(空白不计数),如果>=1,则返回序号。

我们再来看看序号不留号占位的方法。

IF条件判断我们依然用COUNTA(B2:D2)>=1进行判断,如果条件成立,则返回COUNTIF(A$1:A1,">0")+1,以A1单元为首,向下计数,计数条件为>0,空白不计数。这样套路组合,形成了多列判断不留号。

使用COUNTIF有个好处,插入空白行,序号不乱序。

如果留号占位,那更简单,返回为真的条件书写为COUNTA(A$1:A1),COUNTA用于统计区域内非空值的单元格个数,咱们序号3的位置虽然是空白,但存在逻辑计算,也要参与统计。跟COUNTIF的条件判断有所差别(大家一定要理解),这样就保证了序号留号占位。

以上做法,当我们书写填写BCD任何数值,序号都会自动生成。但有个缺点,就是我们筛选的时候,依然会将隐藏单元格区域计算在内。要解决这一方法很简单。

表格最后增加一个辅助列。

A2处书写公式,=IF(COUNTA(B2:D2)>=1,SUBTOTAL(3,F$1:F2)-1,"")。SUBTOTAL函数很强大,他可以选择统计隐藏/忽略隐藏单元格的计算。第一个参数3,表示包含隐藏值的的计数(相当于COUNTA),以E列进行计数。

当我们开启筛选,由于我们E列只有三个数,直接会给我们返回序号1,2,3。取消筛选,又变成原来的样子。

辅助列也是一种解决问题的方法,对于复杂嵌套,小操作解决大问题。大家不想看到,右键列表,隐藏即可。

课后作业:SUBTOTAL函数书写,序号4变成3,序号不留空占位,筛选后自动序号。(很简单噢)

好了,今天啰嗦得有点多,多多见谅。今天就到这里啦,加班去了。如果大家喜欢帮帮,请点点关注,你们的支持是我最大的动力,么么哒。