EXCEL如何使用函数,把同一条件下的内容放在同一单元格?如下图

如下图,A列同一机房下的所有小区放到1个单元格内,并用逗号分隔开。请复制公式过来的同时解释一下,不然留下一串看不懂的字符还不如别回答。

假设A列的数据到200行,先复制A列到C列,数据菜单,选择删除重复项,得到A列不重复数据,然后在D列合并的结果
D2=TEXTJOIN(",",,IF(A$2:A$200=C2,B$2:B$200,""))
下拉
得到A列不重复数据,是为了方便下一步用公式,这个不用解释吧,既然Excel中有函数textjoin,那么数据菜单肯定有“删除重复项”这个内容的。
IF函数,根据A列的数据是否与C列的数据(上一步删除重复项后得到的数据)相同,那么就取对应的B列数据,不相同就取空值
TEXTJOIN函数,将上一步得到的结果(保存在内存中,称为内存数组)连接起来,第1个参数是指定用什么分隔符来分隔每一个数据,第2个参数是如何处理空值,TRUE、1、或省略(只用逗号表示中间有一个参数),表示空值不显示;FALLSE、0,表示显示空值(即得到的结果中有空值的地方同样用指定的分隔符分隔。值得注意的是,本公式的省略与Excel其他函数有所不同,其他函数中,省略一般代表0,而本函数却是1。这也是本函数与WPS不同的地方。追问

谢谢你讲那么详细易懂。但是我没操作成功。
我复制你的公式到表格=TEXTJOIN(",",,IF(A$2:A$200=C2,B$2:B$200,""))
回车之后小区列的所有小区都在D2单元格,不是同一机房的也在里面。我用WPS版本,也没有改动你的公式,怎么会这样

追答

前面的回答中已说明了,WPS对第2参数的忽略与Excel是不同,WPS要这样:
=TEXTJOIN(",",TRUE,IF(A$2:A$200=C2,B$2:B$200,""))

输入公式后,同时按Ctrl+Shift+Enter三键输入数组公式

追问

谢谢!原来关键在“输入公式后,同时按Ctrl+Shift+Enter三键输入数组公式”。我之前都直接回车。

追答

解决问题了就好,麻烦记得最后一个步骤,采纳下,哈哈。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-12-13
函数是偏移函数+代替函数
=IF(COUNTIF($A$2:A2,A2)=1,SUBSTITUTE(PHONETIC(OFFSET($A$1,MATCH(A2,A:A,)-1,0,COUNTIF(A:A,A2),2)),A2,","),"")
下拉公式
前提是,A列要排序,将相同的排列在一起。