如何映射两列

时间:2016-06-17 13:03:37

标签: vba excel-vba excel

我有五列。

例如

  1. 第1栏:名称
  2. 第2栏:姓氏
  3. Column3:mapping
  4. 第4列:映射数据
  5. 列包含

    等数据
          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中和Surname1。

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

4 个答案:

答案 0 :(得分:0)

您是否尝试使用Vlookups进行映射? VLOOKUP(Lookup_Array中,则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

答案 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

答案 2 :(得分: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)))

答案 3 :(得分:0)

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

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

  1. 点击数据标签
  2. 点击文字到列
  3. 检查int**
  4. 选择分隔数据的分隔符
  5. 修改您的列数据格式(如果它是通用的,数字等)在这种情况下它将是通用的。
  6. 点击完成
  7. 你已经完成了!