【问题标题】:finding a matching value in column and updating by vlookup or adress match在列中查找匹配值并通过 vlookup 或地址匹配进行更新
【发布时间】:2016-06-29 07:14:48
【问题描述】:

我对我遇到的问题有一个简单的解释。

A 列:100 个名称的列表(每个名称存在 2 次) B 列:与名称关联的电子邮件地址(每个名称都有电子邮件地址)

例子:

      A1: James B1:oldmail@hotmail.com

      A10: James B10:newmail@hotmail.com

所以我想得到这个===>>

      A1:James B1:newmail@hotmail.com

基本上,当 A 列中的两个值匹配时,我想使用 vlookup 或 adressmatch 来更新电子邮件地址。

我该怎么做?

【问题讨论】:

  • 对应的条目是否在同一行?
  • 您的意思是匹配的名称值?它们都应该在 A 列中
  • 我应该在匹配的 A 列中搜索第二个相同的值,然后获取 ist B 列值并将其写入 A 列第一个匹配值的 B 列
  • 啊,好吧,现在我明白了。到目前为止,您尝试过什么吗?
  • 我正在谷歌上搜索所有我能找到的 vlookup 和地址匹配、索引匹配但找不到它。我需要在我的演示文稿之前完成这个,我认为自己找不到它

标签: excel match vlookup matching


【解决方案1】:

试试下面的代码

注意:如果A列每个名字只有两次就可以了

如果 A 列名称出现一次,它将被视为 B 列中的新名称。

Sub test()
    Dim lastrow As Long
    Dim incre As Long
    Dim flag As String
    flag = "no"
    lastrow = Range("A" & Rows.Count).End(xlUp).Row
    incre = 1
    ReDim names(lastrow, 2) As String
    For i = 1 To lastrow
        names(i, 1) = Range("A" & i).Value
        names(i, 2) = Range("B" & i).Value
    Next i
    For i = 1 To lastrow
        For j = i + 1 To lastrow
            If names(i, 1) = names(j, 1) Then
                flag = "yes"
                Range("C" & incre) = names(j, 1) & " Value: " & names(j, 2)
                incre = incre + 1
            End If
        Next j
        If flag = "no" Then
            Range("C" & incre) = names(i, 1) & " Value: " & names(i, 2)
        Else
            flag = "no"
        End If
    Next i
End Sub

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多