要用另一列的值替换的列值

时间:2015-09-30 05:27:45

标签: excel vba excel-vba

我有一个带有'|'的Excel文件其中的分隔值:

20120615|User 1|mak||ToBeReplaced|20150114
20120615|User 1|mak||ToBeReplaced|20150115
20120615|User 1|mak||ToBeReplaced|20150116
20120615|User 2|mak||ToBeReplaced|20150114
20120615|User 2|mak||ToBeReplaced|20150115
20120615|User 2|mak||ToBeReplaced|20150116
20120615|User 3|mak||ToBeReplaced|20150114
20120615|User 3|mak||ToBeReplaced|20150115
20120615|User 3|mak||ToBeReplaced|20150116

我还有另一个Excel电子表格,其中包含所有Managers的名称。例如

Manager1
Manager2
Manager3
Manager4

现在我希望管理员名称替换为每个用户的列值ToBeReplaced。即

20120615|User 1|mak||Manager1|20150114
20120615|User 1|mak||Manager1|20150115
20120615|User 1|mak||Manager1|20150116
20120615|User 2|mak||Manager2|20150114
20120615|User 2|mak||Manager2|20150115
20120615|User 2|mak||Manager2|20150116
20120615|User 3|mak||Manager3|20150114
20120615|User 3|mak||Manager3|20150115
20120615|User 3|mak||Manager3|20150116

这应该继续替换所有用户,用例是

  1. 如果所有管理员名称都被替换,剩下更多用户,则应该从Manager1重新开始。
  2. 任何人都可以帮我使用Excel公式或其他东西来获得理想的结果吗?

2 个答案:

答案 0 :(得分:1)

这样的事情?
Sample

A栏是您的文字字符串 B2公式:User(末尾有空格)
C2公式:=MID(A2,SEARCH(B2,A2)+LEN(B2),SEARCH("|mak|",A2)-SEARCH(B2,A2)-LEN(B2))
D2公式:ToBeReplaced
E2公式:=CONCATENATE("Manager",C2)
F2公式:=REPLACE(A2,SEARCH(D2,A2),LEN(D2),E2)

答案 1 :(得分:0)

将文本拆分为以管道作为分隔符的列,然后假设第一个user1在B2中,而在E1中使用0则可以放入E2:

=IF(B1=B2,E1,"Manager"&RIGHT(E1,1)+1+IF(RIGHT(E1,1)="4",-4))  

向下复制以适应,然后使用输出从其他工作表中查找表格中的实际名称。