首页 文章

如何映射两列

提问于
浏览
0

我有五列 .

E.g.

  • Column1:名称

  • 第2栏:姓

  • Column3:映射

  • Column4:映射数据

列包含类似的数据

Name         Surname        Mapping    Name1   Surname1
  1   ABC          1  AAAA          3         ABC      QQQQ
  2   XYZ          2  XXXX          1         XYZ      AAAA
  3   OPQ          3  QQQQ          4         OPQ      QQQQ
  4   RST          4  RRRR          2         RST      RRRR

现在我的目标是使用映射列将name列映射到surname,结果应存储在Name1和Surname1列中 . 我在Name和Surname列中有更多数据,通过在Mapping列中写入数字,它会自动将姓氏映射到Name(用户可以选择在映射列中输入数字,然后相应地映射数据),结果应该复制到Name1中和姓1 .

我不知道使用VBA实现这一目标 . 编码Plz帮我.....

4 回答

  • 0

    您是否尝试过使用Vlookups进行映射? Vlookup(Lookup_Value,Table_array,col_index_number,[range_lookup])Vlookup(firstname,您引用的姓氏列,第一个名称列的列号,false)-false用于完全匹配 - 我还粘贴了一个有用的链接下面 . 祝好运!

    https://support.office.com/en-us/article/VLOOKUP-function-0bbc8083-26fe-4963-8ab8-93a18ad188a1?ui=en-US&rs=en-US&ad=US&fromAR=1

  • 0

    将此公式放入映射数据行,它应该执行您想要的操作

    Formula MappedData()
    Dim CurrentCell As Range
    CurrentCell = Application.Caller.Address
    
    MappedData = Cells(CurrentCell.Row,1).Value & " " & Cells(Cells(CurrentCell.Row,3),2).Value
    
    End Formula
    
  • 0

    你不需要Vlookup,只需要连接:

    enter image description here

    如果您想在姓氏前面输入数字,请使用第二个选项 .

    复制和粘贴的公式:

    =CONCATENATE(B2;" ";OFFSET($C$1;D2;0))

    =CONCATENATE(B8;" ";RIGHT(OFFSET($C$7;D8;0);LEN(C8)-FIND(" ";C8;1)))

  • 0

    对不起,我没有意识到你想把它们放在同一列中,就像你上面的那样 . 连接函数有效:
    http://www.gcflearnfree.org/excelformulas/using-concatenate-to-combine-names/1/

    或者如果你去excel,你可以转到 data 标签,然后点击 text to columns.

    • 单击数据选项卡

    • 单击文本到列

    • 检查 Delimited

    • 选择分隔数据的分隔符

    • 修改您的列数据格式(如果它是通用的,数字等),在这种情况下它将是通用的 .

    • 点击完成

    你完成了!

相关问题