我有一个输出,其中数量从最高到最低进行过滤。
我只是想知道是否有办法显示值等于或大于 100K 的行,而不包括低于 100K 的数据。
我的示例数据:
Name | Amount
Person 1 | 500,000
Person 2 | 400,000
Person 3 | 350,000
Person 4 | 200,000
Person 5 | 150,000
Person 6 | 90,000
Person 7 | 80,000
...
期望输出:
Name | Amount
Person 1 | 500,000
Person 2 | 400,000
Person 3 | 350,000
Person 4 | 200,000
Person 5 | 150,000
我不知道如何对此进行编码或添加条件。
答案1
答案2
您所描述的可以通过打开自动筛选或将数据转换为 Excel 表格对象,并选择相应的筛选设置,然后对数据进行排序来实现。如果列表中添加了更多数据,则必须重复筛选和排序。
如果您希望自动应用筛选和排序,则可以使用 Power Query 加载数据,在 Power Query 中执行筛选和排序,然后将结果加载到不同的工作表中。如果原始列表中添加了更多数据,则只需刷新 Power Query 即可。这不需要 VBA,工作簿也不需要启用宏。
Power Query 可作为 Excel 2010 和 2013 的免费插件使用,并作为“获取和转换”内置于后续版本的数据功能区中。
答案3
Sub FilterAndCopy()
Dim xStr As String
Dim xAddress As String
Dim xRg As Range
Dim xCRg As Range
Dim xSRg As Range
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Select Range To Filter:", "Filter Range", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xCRg = Application.InputBox("Select Criteria range:", "Filter Range", "", , , , , 8)
If xCRg Is Nothing Then Exit Sub
Set xSRg = Application.InputBox("Select Output Range:", "Filter Range", "", , , , , 8)
If xSRg Is Nothing Then Exit Sub
xRg.AdvancedFilter xlFilterCopy, xCRg, xSRg, False
xSRg.Worksheet.Activate
xSRg.Worksheet.Columns.AutoFit
End Sub
怎么运行的:
- 复制&粘贴此代码作为标准模块。
- 在单元格中写入条件(过滤数据)(如屏幕截图所示)。
笔记:
在选择时标准选择两者,列标题(在屏幕截图中是数据) 和下面的单元格 (>100000)。
- 跑步宏。
- 回应输入框并结束好的。