我有幾列的行。我想取出其中在B列文本不列C篩選具有ALMOST匹配列的行
含有這是一個例子片的行。我想修剪這個數據,所以只有第2和第4行保持。需要注意的是,街道號碼和ADDRESS 2欄中的街道名稱之間有一個額外的空間,因此完全匹配不起作用。
對我來說並不重要,如果它是一個過濾器,或與另一種公式填充板細胞,但我不知道宏(還)。無論哪種方式,任何幫助表示讚賞!這是一組超過30萬行和大約70列。
我有幾列的行。我想取出其中在B列文本不列C篩選具有ALMOST匹配列的行
含有這是一個例子片的行。我想修剪這個數據,所以只有第2和第4行保持。需要注意的是,街道號碼和ADDRESS 2欄中的街道名稱之間有一個額外的空間,因此完全匹配不起作用。
對我來說並不重要,如果它是一個過濾器,或與另一種公式填充板細胞,但我不知道宏(還)。無論哪種方式,任何幫助表示讚賞!這是一組超過30萬行和大約70列。
所以我會做的是改變列B和C,以便有每個字符串中不能包含空格,像這樣
For i = 2 to Worksheets("Sheet1").UsedRange.Rows.Count
Cells(i,2) = Replace(Cells(i,2), " ", "")
Cells(i,3) = Replace(Cells(i,3), " ", "")
Next i
,然後你可以比較兩個用於直接匹配。我相信你可以把它從那裏,但如果沒有,一個辦法是循環再和刪除任何實例,其中兩列不等於
For i = Worksheets("Sheet1").UsedRange.RowsCount) to 2 Step -1
if Cells(i,2) <> Cells(i,3) then
Cells(i,1).EntireRow.Delete
end if
Next i
當然,這是假設你只需要看看排在你的比賽循環中訪問(或缺乏)。
您也可以執行條件格式和顏色,然後過濾顏色並移除選定的顏色。
你可以試試這樣的事情...
Sub KeepMatchingData()
Dim lr As Long, lc As Long
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
lr = ActiveSheet.UsedRange.Rows.Count
lc = ActiveSheet.UsedRange.Columns.Count + 1
Range(Cells(2, lc), Cells(lr, lc)).Formula = "=IF(TRIM(B2)=TRIM(C2),ROW(),NA())"
On Error Resume Next
Range(Cells(1, 1), Cells(lr, lc)).RemoveDuplicates Columns:=lc, Header:=xlYes
Range(Cells(2, lc), Cells(lr, lc)).SpecialCells(xlCellTypeFormulas, 16).EntireRow.Delete
Range(Cells(2, lc), Cells(lr, lc)).Clear
With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
參見[模糊查找添加爲Excel(https://www.microsoft.com/en-ca/download/details.aspx? ID = 15011)。 – Jeeped
你可以使用'Replace'來擺脫所有的空白,然後進行比較。 –