Excel中A有重复数据,B列有重复数据也有不同数据,保留A一条数据,将B列不同数据放在不同的单元格内

A列数据和B列数据有一万多个
完成的效果图就像上面那种,D列为A列数据,E列到G列为B列的不同数据

因为提取A列不重复数据要引用上一个单元格,这样如果第1个数据在D1就要出错了,D1的上一个单元格不存在!所以要从第2个单元格开始编写公式:

D2=INDEX(A:A,MIN(IF(COUNTIF(D$1:D1,A$1:A$13)=0,ROW($1:$13),4^8)))&""

同时按Ctrl+Shift+Enter三键输入数组公式,下拉到出现空白单元格

E2=INDEX($B:$B,SMALL(IFERROR(IF(MATCH(IF($A$1:$A$12=--$D2,$B$1:$B$12,""),IF($A$1:$A$12=--$D2,$B$1:$B$12," "),)=ROW($1:$12),ROW($A$1:$A$12),4^8),4^8),COLUMN(A:A)))&""

同时按Ctrl+Shift+Enter三键输入数组公式,下拉到与D列平齐,再右拉E到所有行出空白单元格。

追问

如果A列和B列有一万个数值的话,我应该修改那个地方

追答

数据到哪行,就把公式中的行号12改到实际数据行号,13改到比实际数据多1行。
补充两点:
1. E2中的公式针对A列是数字,所以有两处用了两个负号,把D列中的文本数字转化为纯数字。如果A列不是数字,就无需两处的负号。
2. 实际数据一万多行的话,估计会比较卡,除非你的电脑强劲。可以考虑用VBA会好些。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-10-21
1,C1输入=A1&","&B1,下拉到C12,复制C列,选择性粘贴C列,值和数字格式,选中C列去除重复值,选中C列进行分列
2, E1输入=D1&IFERROR(","&VLOOKUP(C1,C2:E$11,3,0),""),下拉公式到E10,
3.复制A列给F列,去除重复值,
4.G1输入=VLOOKUP(F1,$C$1:$E$10,3,0),下拉公式到G5,复制G列选择性粘贴为值和数字格式,选中G列分列。
不是一点点的烦。本回答被提问者采纳
第2个回答  2018-10-21
写代码可以实现你说的追问

可以只用公式做么

第3个回答  2018-10-21
标记 明天研究下追问

大佬,给个思路

相似回答