2016-06-17 110 views
0

我有五列。如何映射兩列

E.g.

  1. 列1:名稱
  2. 列2:姓
  3. 欄3:映射
  4. 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 

現在我的目標是數據將姓名列映射到姓氏由你sing映射列和結果應存儲在Name1和Surname1列中。我在Name和Surname列中有更多數據,通過在Mapping列中編寫數字,它會自動將姓氏映射到Name(將選擇提供給用戶在映射列中輸入數字,然後映射數據),並將結果複製到Name1和Surname1。

我不明白用VBA來達到這個目的。編碼Plz幫助我.....

+0

映射數據是否正確?我期待姓氏按照QQQQ,AAAA,RRRR,XXXX的順序映射。如果我有這個錯誤,請讓我們知道你是如何計算映射。 –

回答

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

是否有效,如果我有名字列和姓氏列中的長數據 – Amar

+0

是的,它會。由於數據附加到一個字符串,它會自動將數據類型轉換爲一個字符串 – RGA

+0

如果我更改第3列中的數據(將數據映射到不同的數字)....那麼它是否適用於該新數據。 – Amar

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.

  1. 單擊數據選項卡上的文本到
  2. 點擊
  3. 檢查Delimited
  4. 選擇分隔您的數據的分隔符
  5. 在這種情況下,修改列數據格式(如果它是通用的,數字等)將是通用的。
  6. 點擊完成

你完成了!