现在我认为在Excel中有一个相当简单的方法。我打算用一种自定义的Python方式来做这件事,但我并不是非常精通CSV模块。我根本不了解VBA(虽然我不会因为这项任务而学习它。)
基本上我的问题是:
我有一个列J,其中有多个名字(连接的第一个和最后一个名字来自H和I列,公式为=H&" "&I
,我想做一些事情:
1 - 首先,我想将列G与列J相关联。(列G包含我尝试与所有其他行关联的联系人ID)。我相信我会和一群人一起做这件事吗?
2 - 其次,我想删除整个F列中没有匹配的J(以及G)的所有值。
基本上,对于F的所有值,如果J列中没有任何值相等,我希望删除或隐藏J和G的分组。
注意,绝对没有在整个时间内对G进行验证,仅在F和J之间进行验证。
我的怀疑是,这意味着将J的每个值与F的值数组进行比较,然后如果没有对应的值,则删除该J的特定值是其中一部分的组
编辑:为了澄清,F中的数据也是名字和姓氏。
答案 0 :(得分:0)
我明白这是非常不优雅的(甚至可能完全没有成功),但这会做你想要的。您只需要将列的范围调整为您想要的任何值(我使用了17,000行)。我像你说的那样使用了J和F列,所以你只需要运行它:
Sub CheckColumnForValuesInAnotherColumn()
Dim CheckColumn As Range
Dim ColumnToDeleteValuesFrom As Range
Dim wbk As Workbook
Set wbk = ThisWorkbook
Set ws = wbk.Sheets(1)
Set CheckColumn = ws.Range("F2:F17000")
Set ColumnToDeleteValuesFrom = ws.Range("J2:J17000")
Dim cell As Range
On Error Resume Next
Application.ScreenUpdating = False
ws.Select
For Each cell In ColumnToDeleteValuesFrom
If Application.WorksheetFunction.VLookup(cell.Value, CheckColumn, 1, False) = IsError(xlErrNA) Then
cell.ClearContents
End If
Next cell
ws.Select
Range("A1").Select
Application.ScreenUpdating = True
End Sub
祝你好运。