Barry有一个很大的工作表,其中包含数千行数据。

B列包含一个日期,他需要删除B列中的日期早于特定截止日期的所有行。 Barry想知道对这么多数据执行此操作的最简单方法。

这很容易做到,使用的方法取决于您需要执行的频率以及要如何使用数据。如果您不在乎数据的顺序,那么最简单的方法就是我所说的“排序和删除”方法:

。选择单元格B2。 (这假设B2是数据行中的第一个日期,因为第1行包含标题。)

。显示功能区的“数据”选项卡。

。单击“从最旧到最新的排序”工具。 Excel根据B列中的日期对数据进行排序,其中最旧的日期位于第2行中。 。选择并删除包含截止日期之前的日期的行。

如果您只需要偶尔执行一次该任务并且不介意要重新排序的数据中的行,则此方法非常有用。如果重新排序是一个问题,那么您可能想在数据中添加一列,并用从1到多行数据的值填充该列。然后,您可以执行“排序和删除”方法,但是之后根据添加的列中的值对数据进行重新排序。

当然,您也可以使用“过滤并删除”方法,该方法将按原始顺序保留数据,而无需帮助列:

。选择单元格B2。 (这假定B2是数据行中的第一个日期,因为第1行包含标题。)

。按Ctrl + Shift + L。 Excel将自动筛选应用于您的数据。 (您应该能够在第1行的标题旁边看到小的下拉箭头。)

。单击单元格B1中“日期”标题旁边的下拉箭头。 Excel显示一些排序和筛选选项。

。将鼠标指针悬停在“日期过滤器”选项上。 Excel显示更多选项。

。选择之前选项。 Excel将显示“自定义自动筛选”对话框。

。在“之前”右侧的框中,指定截止日期后一天的日期。

。单击确定。 Excel将应用该过滤器,您只能看到截止日期或之前的那些行。

。选择所有行,而不是第1行。(这是因为第1行包含您的标题。)

。显示功能区的“主页”选项卡。

。单击删除工具。 Excel删除所有选定的行。

。显示功能区的“数据”选项卡。

。单击筛选器工具以删除自动筛选器。

如果您需要执行经常删除行的任务,那么您将无法克服使用宏的便利。下面的宏假定您已将截止日期放入单元格K1中。它获取该日期,然后查看数据中的每一行,删除此截止日期之前的所有行。

Sub DeleteRowsBeforeCutoff()

Dim LastRow As Integer     Dim J As Integer

Application.ScreenUpdating = False     LastRow = Cells(Rows.Count, 2).End(xlUp).Row     For J = LastRow To 1 Step -1         If Cells(J, 2) < [K1] Then             Cells(J, 2).EntireRow.Delete         End If     Next J     Application.ScreenUpdating = True End Sub

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本提示(1566)适用于Microsoft Excel 2007、2010、2013和2016。