我有一個包含兩列數據的excel文檔。 第一列有19k行數據,第二列有2k行數據。 第2列中的所有數據都存在於第1列中。 我想刪除第一列中包含第二列數據的所有行。 有沒有辦法如何做到這一點提前> 感謝,Lazialeexcel刪除具有相同數據的行
回答
此代碼將工作,通過柱A和刪除,其具有在任何行中出現在列B值的任何行它假定兩個列A和B值在第1行開始:
Sub RemoveDuplicates()
Dim colB As Variant, iRow As Long
colB = Range("B1:B2000") //Add you reference for column B
For iRow = Range("A1").End(xlDown).Row To 1 Step -1
If Not IsError(Application.Match(Cells(iRow, 1), colB, 0)) Then
Cells(iRow, 1).EntireRow.Delete
End If
Next iRow
End Sub
就像你所做的那樣,通過刪除列B中的值,您正在更改列表以檢查列A中的值。我認爲@Laziale真的希望列A中的單元格被刪除(保留列B),而不是整行。 – Excellll 2011-05-03 18:46:21
@Excelllll - 雖然OP沒有明確說明,如果是這種情況,可以通過刪除EntireRow來輕易修復。讓我們看看OP是否回來了他自己的一些評論。 – 2011-05-03 20:18:07
我想指出你的邏輯在某些情況下不會完成任務。例如,如果列A包含{a,b,c,d,e,f},並且列B包含{f,e,d,c,b,a},則應刪除所有行。但是,您的代碼將保留前3行。 – Excellll 2011-05-03 21:03:29
這可能是更容易與grep做到這一點:每列
導出到文件,並做了「的grep -v」 。這裏是一個例子:
$ cat col1.txt
A
B
C
D
$ cat col2.txt
B
D
$ grep -v -f col2.txt col1.txt
A
C
使用VBA可能是最簡單的方法。試試下面的宏。它將刪除列A中與列B中的任何值匹配的所有單元格。如果您需要爲其他列執行此操作,只需調整代碼以匹配工作簿的設計即可。
Sub removematches()
Dim firstcolumn() As Variant
Dim colA As Range
Dim colB As Range
Dim i As Long, del As Long
'This will set the ranges to look in. Note that this will only work for data with no blank cells. If you have blank cells, you can change these Set statements to the following:
' Set colA = Range("A1:A100") if you have 100 rows you want to look at.
Set colA = Range("A1", Range("A1").End(xlDown))
Set colB = Range("B1", Range("B1").End(xlDown))
firstcolumn = colA
ReDim Preserve firstcolumn(1 To UBound(firstcolumn), 1 To 2) As Variant
i = 1
del = 0
Do While i <= UBound(firstcolumn)
firstcolumn(i, 2) = Application.WorksheetFunction.CountIf(colB, firstcolumn(i, 1))
If firstcolumn(i, 2) > 0 Then
Range("A1").Offset(i - del - 1, 0).Delete Shift:=xlUp
del = del + 1
End If
i = i + 1
Loop
End Sub
- 1. 刪除具有順序相似數據的行 - R Zoo
- 2. 所有列刪除具有相同值的行
- 3. 休眠:將還原已刪除的行具有相同的ID
- 4. 如何刪除具有相同數據但日期不同的記錄
- 5. 從表中刪除NULL行,並且具有相同的日期
- 6. 在matlab中刪除具有相同第一列值的行
- 7. 如何刪除datagridview中具有相同值的行
- 8. 刪除具有相同ID號的重複行
- 9. 刪除具有相同列名的多行
- 10. GROUP BY刪除具有相同值的行
- 11. 如果兩行具有相同的值刪除它擅長
- 12. SQL查詢:從PostgreSQL中刪除具有相同值的行
- 13. 如何刪除一列中具有相同值的多行?
- 14. 刪除具有相同值的數組中的項目
- 15. 合併/刪除具有相同子項的數組
- 16. 如何刪除具有相同值的數組元素?
- 17. 刪除具有相同名稱但路徑不同的Cookie
- 18. 在選定數據集(ADS)中刪除具有相同ID的記錄
- 19. R:刪除具有相同元素的行,但在不同的列中
- 20. R - 如何刪除數據幀的兩個準相同的行?
- 21. 如何刪除具有相同模式的不同JSON文件行?
- 22. 如何刪除在R的所有列中具有相同值的行
- 23. Excel刪除行刪除錯誤的行
- 24. 使用NPOI Excel工具刪除行c#
- 25. 刪除Excel行
- 26. 刪除重複行,如果包含所有相同的數值
- 27. 如何通過pandas或spark數據框刪除所有行中具有相同值的列?
- 28. 刪除在另一個數據幀的相應行中具有特定值的數據幀中的行
- 29. 刪除具有特定條件的數據幀的行
- 30. 過濾NSFetchedResultsController以刪除具有相同名稱的對象
第二列中是否有大量不同的值?例如,我們是在說4,40,400還是4000個不同的第二列值? – Jubbles 2011-05-03 16:43:51