[英]Match elements from ID table and table with multiple rows of same ID
這似乎在 VBA
Sub Pandemic()
Dim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")
Dim i As Long, x As Long, lr As Long
Dim DeleteMe As Range
Dim Flag As Boolean
'Target Values
Dim target
target = ws.Range("A2:A" & ws.Range("A" & ws.Rows.Count).End(xlUp).Row).Value
'Table With All Values
Dim source As Range
lr = ws.Range("C" & ws.Rows.Count).End(xlUp).Row
Set source = ws.Range("C2:D" & lr)
'Create Copy of Table
source.Copy ws.Range("F2")
For i = 2 To lr
Flag = False
For x = LBound(target) To UBound(target)
If ws.Range("F" & i) = target(x, 1) Then
Flag = True
End If
Next x
If Not Flag Then
If Not DeleteMe Is Nothing Then
Set DeleteMe = Union(DeleteMe, ws.Range("F" & i).Resize(1, 2))
Else
Set DeleteMe = ws.Range("F" & i).Resize(1, 2)
End If
End If
Next i
If Not DeleteMe Is Nothing Then DeleteMe.Delete
End Sub
作為參考,這些是我測試的范圍。 您將不得不相應地更新范圍和工作表引用。
假設您的范圍是“表”,您可以使用 Power Query:
M代碼
let
Source = Excel.CurrentWorkbook(){[Name="idValTbl"]}[Content],
tbl1 = Table.TransformColumnTypes(Source,{{"ID", type text}, {"Value", Int64.Type}}),
Source2 = Excel.CurrentWorkbook(){[Name="idTbl"]}[Content],
tbl2 = Table.TransformColumnTypes(Source2,{"ID", type text}),
join = Table.AddJoinColumn(tbl2,"ID",tbl1,"ID","joined"),
#"Expanded joined" = Table.ExpandTableColumn(join, "joined", {"Value"}, {"Value"})
in
#"Expanded joined"
更改第 2 行和第 4 行中的表名,以反映上面顯示的表 2 和表 1 的工作簿中的真實表名。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.