我有一個輸出,其中金額從最高值開始按降序過濾。
我只是想知道是否有辦法顯示值為 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)。
- 跑步宏。
- 回應輸入框並完成好的。