我有一個 Excel 電子表格,其中包含“AP”列,其中每個單元格都包含這樣的值
5358 161043 22344 8444 103145 69221044
「5358 161043 22344 8444 103145 69221044」都是一個單元格,在本例中為 AP2。我知道這很混亂,但我從別人那裡繼承了它,並正在努力清理它。
我需要某種方法來提取 6623 到 12756 之間的數字範圍內的這些值。
答案1
我製作了一些虛擬資料並將其放在工作表的 A 列中。在 B 列中,我使用了以下公式:
=IF(AND(A1>=$L$35,A1<=$L$36),"Yes","No")
這是一個簡單的過濾器,對於目標範圍內的值返回“是”(我將它們放在單元格 L35 和 L36 中)。
接下來,選擇這兩個欄位並開啟篩選器。
現在,在「主頁」標籤上,前往「編輯」功能區並選擇「尋找和選擇」。選擇顯示“轉到特別...”的選項
選擇名為「僅可見儲存格」的選項,然後按「確定」。
按“複製”或使用 CTRL-C。這應該只選擇包含所需資料的行。
現在,如果您貼上到空白表格中,則將僅貼上與所需日期範圍相對應的資料。注意:在我的範例中,我沒有將標題的第 1 行留空,因此當我套用篩選器時,我最終留下了一個「否」。您可以刪除掉隊者,或只是在開頭留下一個空白行,這樣就不會發生這種情況。
答案2
首先在標準模組中輸入以下使用者定義函數:
Public Function GrabData(r As Range) As String
Dim cel As Range, v As String, a, d As Double
GrabData = ""
For Each cel In r
v = cel.Text
arr = Split(v, " ")
For Each a In arr
If IsNumeric(a) Then
d = CDbl(a)
If d > 6622 And d < 12757 Then GrabData = GrabData & " " & a
End If
Next a
Next cel
End Function
那如果你有數據AP1透過AP3,選擇另一個儲存格並輸入:
=GrabData(AP1:AP3)
例如:
如您所見,這些值以空間分隔字串,就像輸入一樣。