【问题标题】:Search, compare and paste data between two excel sheets在两个 Excel 工作表之间搜索、比较和粘贴数据
【发布时间】:2020-08-17 17:08:35
【问题描述】:

Excel 中是否有任何功能可以比较不同的电子表格?

我的任务如下:

  • 我有一个带有文章编号和相应列(例如字母)的原始文件。
  • 我有一个新的电子表格,其中文章编号的顺序不同。

Original File

Article Number / Letter
1 A
2 B
3 C
4 D
5 E

New File

Article Number / Letter
3 ?
2 ?
1 ?
4 ?
5 ?

目标:我想根据文章编号从原始文件中复制字母值。

因此,我正在寻找一个功能来执行以下操作:

  • 对于新文件中的文章编号,搜索原始文件中的 B 列
  • 如果文章编号匹配,则将相邻字母复制到新文件中。

这在 excel 中可能吗?我不确定是否需要使用条件格式或 VLookup。我的解决方法是根据新工作表对原始工作表进行排序并复制整个列。

最好, 大黄

Search and Paste neighbouring cell value

【问题讨论】:

  • 使用 VLOOKUP 很容易,只要文章编号在您要返回的字母的左侧。如果它在右侧,您可以使用 XLOOKUP(),或者,如果您的 Excel 版本中没有,则可以使用 INDEX/MATCH。阅读您要部署的功能,您将在 15 分钟内完成。

标签: excel


【解决方案1】:

试试这个代码

Sub DictionaryTest()
    Dim Dict As Object
    Dim rgsource As Range, rgDest As Range, I As Long
    Set Dict = CreateObject("Scripting.Dictionary")
    Set rgsource = Worksheets("Sheet1").Range("A1")
    Dim lr As Long: lr = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
    For I = 0 To lr - 1
        Dict.Add Worksheets("Sheet1").Range("A1").Offset(I, 0).Value, Sheet1.Range("A1").Offset(I, 1).Value
    Next
    Set rgDest = Worksheets("Sheet2").Range("A1")
    lr = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
    For I = 0 To lr - 1
        If Dict.Exists(rgDest.Offset(I, 0).Value) Then rgDest.Offset(I, 1).Value =  Dict(rgDest.Offset(I, 0).Value)
    Next
    Set Dict = Nothing
End Sub

还有其他方法,但是这种方法很容易理解

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-27
    • 2012-11-23
    • 2020-12-09
    • 1970-01-01
    相关资源
    最近更新 更多