EXCEL中如何将A列相同项所对应的B列数据按C列要求合并至D列,并且数据间用逗号隔开。

如题所述

可用PHONETIC函数实现。

示例如下:

假定合并如图所示的“一班”的同学名字到D列,名字之间以逗号分隔。

D2的公式:

=SUBSTITUTE(SUBSTITUTE(PHONETIC(OFFSET(A$1,MATCH(C2,A:A,)-1,,COUNTIF(A:A,C2),2)),C2,","),",",,1)

其中:OFFSET(A$1,MATCH(C2,A:A,)-1,,COUNTIF(A:A,C2),2) 得到所有一班的班级与姓名区域,然后用PHONETIC函数合并,得到依次由“一班”和姓名组成的字符串,最后用SUBSTITUTE函数将“一班”替换为逗号,并将第一个逗号去掉,得到如图中D2单元格的结果。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-15
一个简单的 循环语句就搞定了
运行只需秒秒钟解决

如果要用Substitute+ PHONETIC,
先转换成文本就可以了

=(SUBSTITUTE(PHONETIC(OFFSET($A$1,MATCH(E2,$A$1:$A$1000,0)-1,0,COUNTIF($A$1:$A$1000,E2),3)),E2,","))追问

你刚才给我编的VBA怎么用的

追答

F5运行
你有完没完?

本回答被提问者采纳
第2个回答  2013-01-26
函数可以实现,不过有点长,做好了的,要的话可以发邮箱追问

请发邮件给我吧![email protected],谢谢!

追答

已发,请查收,不清楚,欢迎追问。另外还有小问题,如果同一种箱规的单元格个数超过了七个,公式还要加

追问

你编的公式太长了,能不能简单点

追答

其实道理很简单,后面一长串是复制的,只改了两个数字

追问

你编的公式太长了,能不能简单点,你帮我看看这个,和我的表相似,能不能在这个基础上改一下,我参照了半天也不会用http://zhidao.baidu.com/question/520042769?quesup2&oldq=1

追答

a

追问

我有了满意的答案,加一列文本格式的数值,再输入公式=(SUBSTITUTE(PHONETIC(OFFSET($A$1,MATCH(E2,$A$1:$A$1000,0)-1,0,COUNTIF($A$1:$A$1000,E2),3)),E2,","))谢了

追答

恩,晓得了,学习了

第3个回答  2013-01-26
用VBA实现
相似回答