首页 办公 正文

excel序号跳过筛选

在新建一列中输入以下公式:复制这个公式到所有需要排序的单元格即可。SubAutoSort()DimiLastRowAsIntegeriLastRow=Cells(Rows.Count,...

Excel是非常流行的电子表格应用程序,它可以帮助我们分析和处理大量数据。在使用Excel过程中,经常需要对数据进行排序和筛选。然而,有时候我们会发现序号并没有跳过筛选,这可能导致数据不准确。本文将探讨如何解决这个问题。

序号跳过筛选的原因:

在Excel中,如果我们对一列数据进行筛选,那么序号旁边的数字也会被隐藏。原因是Excel会根据筛选后的结果重新计算序号。这会导致部分数据的序号不连续,甚至可能跨越多个行。

解决方法:

1. 使用自定义公式:在新建一列中输入以下公式:=SUBTOTAL(3,$A$1:A1)。其中,3代表计数函数,$A$1代表第一个单元格,A1代表当前单元格。复制这个公式到所有需要排序的单元格即可。

2. 使用VBA宏:打开Visual Basic编辑器,添加以下代码:

Sub AutoSort()

Dim iLastRow As Integer

iLastRow = Cells(Rows.Count, 1).End(xlUp).Row

Range("A2:A" & iLastRow).Formula = _

"=SUBTOTAL(3,$A$1:A1)"

Range("A1").Select

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear

ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add _

Key:=Range("B2:B" & iLastRow), SortOn:=xlSortOnValues, Order:=xlAscending, _

DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Sheet1").Sort

.SetRange Range("A1:C" & iLastRow)

.Header = xlNo

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply

End With

Range("A2:A" & iLastRow).ClearContents

End Sub

这个宏可以在排序前自动添加一列,并将原来的列作为排序列。最后,清除新列的数据。

序号跳过筛选是Excel中一个常见的问题,但是我们可以通过自定义公式或使用VBA宏来解决。这些方法可以确保序号的准确性,使数据处理更加方便和可靠。

本文转载自互联网,如有侵权,联系删除