1、打开excel表格,在A列汇总输入“原序号”,按照1-10的顺序升序排列。
2、在B2单元格内输入函数公式:=SUBTOTAL(103,A$2:A2)。
3、点击回车,即可生成计算结果。
4、然后双击B2单元格右下角的绿色点,即可向下复制公式填充B列。
5、然后选中5行-7行,点击鼠标右键,在弹出的选项中点击“隐藏”。
6、即可看到原序号的A列中隐藏后序号已经切断,而公式计算的B列在隐藏后自动变为连续的序号。
Excel中隐藏行之后使序号仍然连续的方法:
有时在设置表格时,需要让序号自动生成;
首先想到的是用COUNTA函数对某列的非空白单元格计数,如图,A2输入:=COUNTA($B$2:B2),下拉填充即可自动生成序号;
使用筛选后,序号不连续了,隐藏行中仍然占用了序号,不便于直接打印出来;
此时就需要用到分类汇总函数SUBTOTAL,该函数第一参数选用不同的值,有不同的功能,下图是各参数的功能表;
再回到刚才的例表,用函数:=SUBTOTAL(103,$B$2:B2),就可得到隐藏行后的连续序号。
用vba的方法,假设A列是序号,共有100多行,其中有些行是隐藏的,那么按照下述方法操作:
在工作表界面作如下操作:
按Alt+F11->打开vixual basic编辑器
在打开的vixual basic编辑器窗口作如下操作:
标题栏->视图->工程资源管理器(单击打开)
双击sheet1(注意你的工作表如果是sheet2,就双击sheet2)
右边出现一大片空白区域
将下述代码复制->粘贴进去:
Sub 重排序号()
Dim i As Integer, n As Integer
n = 0
For i = 1 To 1000 Step 1
If Cells(i, 1) = "" And Cells(i + 1, 1) = "" Then Exit For
If Rows(i).EntireRow.Hidden = False Then
n = n + 1
Cells(i, 1) = n
End If
Next i
End Sub
'运行上述代码即可!
假如数据从B2开始,A列是编号
A2输入
=subtotal(103,B$2:B2)
向下填充到底
再隐藏部分行试试看A列的变化
-------------------
A5输入
=subtotal(103,B$5:B5)
填充到底,为什么不试试呢
如序号1在A5单元格,且对应的B列无空值 。
在A5输入,=SUBTOTAL(3,$B$5:B5)
并向下复制到A30