2015-09-30 73 views
1

我有一个带有'|'的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电子表格。例如

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开始。

任何人都可以帮助我一个Excel公式或什么来获得所需的结果?

回答

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)

+0

如何*,那么它应该开始再次来自Manager1 *。 – pnuts

+0

对不起,我不太明白这一步需要做什么,更清楚前后是否有。 OP是否意味着像'20120615 | Manager1 | mak || ToBeReplaced | 20150114'? – PatricK

+0

显然我不是:)但OP看起来很开心,所以没关系。通常情况下,印地安人比酋长人多,所以我期望在耗尽用户之前就会耗尽管理人员,即在某些时候需要将高用户数量分配给低数量的经理 - 重新启动周期。 – pnuts

0

分裂的文本分列与竖线作为分隔符,然后假设第一user1是在B2和与E1 0你可能会放在E2:

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

复制下来,以适应,然后使用输出从另一张表格中查找表格中的实际名称。

相关问题