gpt4 book ai didi

excel - 如何匹配列之间的数据进行比较

转载 作者:行者123 更新时间:2023-12-03 03:00:09 25 4
gpt4 key购买 nike

我真的不知道如何清楚地解释这一点。请参阅附图

enter image description here

我有一个包含 4 个不同列的表,其中 2 个彼此相同(名称和数量)。然而,目标是比较数量之间的差异,以便做到这一点。我必须:1.对数据进行排序2.逐项匹配数据对于小表来说这并不是什么大问题,但是对于 10000 行,我需要几天的时间才能完成。

请帮助我,我很感激。

我的逻辑是:1. 对前两列(NAME 和 QTY)进行排序2. 对于后两列(名称和数量)的每个值,检查其是否与前两列匹配。如果为 true,则插入该值。3. 对于不匹配的值,插入到新行,偏移量位于前两列但不在后两列的行

最佳答案

这就是你正在尝试的吗?

Option Explicit

Sub Sample()
Dim ws As Worksheet
Dim lastRow As Long, i As Long, newRow As Long
Dim aCell As Range, SrchRange As Range

Set ws = Sheets("Sheet1")

With ws
.Columns("A:B").Copy .Columns("G:G")
.Columns("G:H").Sort Key1:=.Range("G2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal

lastRow = .Range("G" & Rows.Count).End(xlUp).Row
newRow = lastRow

Set SrchRange = .Range("G2:G" & lastRow)

lastRow = .Range("C" & Rows.Count).End(xlUp).Row

.Range("I1").Value = "NAME": .Range("J1").Value = "QTY"

For i = 2 To lastRow
If Len(Trim(.Range("C" & i).Value)) <> 0 Then
Set aCell = SrchRange.Find(What:=.Range("C" & i).Value, LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)

If Not aCell Is Nothing Then
.Range("I" & aCell.Row).Value = .Range("C" & i).Value
.Range("J" & aCell.Row).Value = .Range("D" & i).Value
Else
newRow = newRow + 1
.Range("I" & newRow).Value = .Range("C" & i).Value
.Range("J" & newRow).Value = .Range("D" & i).Value
End If
End If
Next
End With
End Sub

快照

enter image description here

关于excel - 如何匹配列之间的数据进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10420611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com