ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > 函数与公式 > 如何将重复数据放到同一行?

如何将重复数据放到同一行?

作者:绿色风 分类: 时间:2022-08-18 浏览:316
楼主
悟空师弟
题目:如何将重复数据放到同一行?
说明:
1、A列为1-9这9个随机数。      
2、将重复数据放到同一行。
要求:
一个公式右拉下拉完成!(纯函数题,且不可定义名称)
效果如下:

 

附件:

如何将重复数据放到同一行?.rar


要求:答案贴出公式即可:
奖励:正确答案即可获得评分(魅力值 + 5 ,技能 + 5)。
截止时间:答案超过10个楼层。(水帖必删)
2楼
piny
D2
  1. =IF(COLUMN(A1)>COUNTIF($A:$A,ROW(A1)),"",ROW(A1))
右拉下拉
3楼
Zaezhong
  1. =IFERROR(MID(REPT(INDEX($A:$A,SMALL(IF(MATCH($A$2:$A$30,$A$2:$A$30,)=ROW($1:$29),ROW($2:$30)),ROW(A1))),INDEX(COUNTIF($A:$A,ROW($1:$9)),$A2)),COLUMN(A1),1),"")
4楼
鬼狐
=if(column(a1)>10,"",INDEX($A:$A,MOD(SMALL(IF(MATCH($A$1:$A$30,$A$1:$A$30,)=ROW($1:$30),IF(COUNTIF($A$1:$A$30,$A$1:$A$30)>=COLUMN($A:$J),ROW($1:$30),4^8)+ROW($1:$30)*10^5,10^9+4^8),(ROW(A1)-1)*10+COLUMN(A1)),10^5))&"")
没安装兼容,也不知道你有多少行,就暂时做到30行吧
另外,此公式在03版本运行不了,因为A列是随机数值,听说在03以上版本可以运行,所以就弄出来看下~~
5楼
tldrtnnhtg
=IF(COUNTIF($A$1:$A$18,N(OFFSET($A$1,SMALL(IF(MATCH($A$1:$A$18,$A$1:$A$18,0)=ROW($A$1:$A$18),ROW($A$1:$A$18),20),ROW())-1,)))>COLUMN()-COLUMN($B$1),OFFSET($A$1,SMALL(IF(MATCH($A$1:$A$18,$A$1:$A$18,0)=ROW($A$1:$A$18),ROW($A$1:$A$18),20),ROW())-1,),"")  数组公式  不过只能在07中应用
6楼
fangjianp
没有公式长度限制,公式长度:284。
D2=MID(REPT(MOD(SMALL(IF(ISNA(MATCH(COLUMN($A:$I),$A$2:$A$30,)),99,MATCH(COLUMN($A:$I),$A$2:$A$30,))/1%+COLUMN($A:$I),ROW(A1)),10),COUNTIF($A$2:$A$30,MOD(SMALL(IF(ISNA(MATCH(COLUMN($A:$I),$A$2:$A$30,)),99,MATCH(COLUMN($A:$I),$A$2:$A$30,))/1%+COLUMN($A:$I),ROW(A1)),10))),COLUMN(A:AD),1)
数组公式,右拉下拉

上面公式太长了,给个短一点的,公式长度:232
D2=MID(REPT(RIGHT(LARGE(MMULT(2^(30-COLUMN($A:$AC)),($A$2:$A$30=COLUMN($A:$I))*5)+COLUMN($A:$I),ROW(A1))),COUNTIF($A$2:$A$30,RIGHT(LARGE(MMULT(2^(30-COLUMN($A:$AC)),($A$2:$A$30=COLUMN($A:$I))*5)+COLUMN($A:$I),ROW(A1))))),COLUMN(A1),1)
数组公式,右拉下拉

来个更短一些的,公式长度:148
D2=RIGHT(TEXT(LARGE(MMULT(2^(34-COLUMN($A:$AC)),($A$2:$A$30=COLUMN($A:$I))*5)+COLUMN($A:$I),ROW(A1))*(SUM(N(C2=""&$A$2:$A$31))>=COLUMN(A1)),"[>9]0;"))
数组公式,右拉下拉

再短一字符,公式长度:147
D2=RIGHT(TEXT(LARGE(MMULT(2^(34-COLUMN($A:$AC)),($A$2:$A$30=COLUMN($A:$I))*5)+COLUMN($A:$I),ROW(A1))*(SUM(N(C2=""&$A$2:$A$31))>=COLUMN(A1)),"[>9];"))
数组公式,右拉下拉
最外层的函数可以为TEXT(……,"[>9]")。公式长度为146

以上公式在EXCEL2003中可用
7楼
落雪绽菊
f2=IF(NOT(COLUMN(A1)>(--RIGHT(LARGE((FREQUENCY($A$2:$A$30,$A$2:$A$30)>0)*ROW($A$2:$A$31)*ROW($100:$100)+(FREQUENCY($A$2:$A$30,$A$2:$A$30)),ROW(1:1)),2))),INDIRECT("a" & INT(LARGE((FREQUENCY($A$2:$A$30,$A$2:$A$30)>0)*ROW($A$2:$A$31)*ROW($100:$100)+(FREQUENCY($A$2:$A$30,$A$2:$A$30)),ROW(1:1))/100)),"")
8楼
yuxin78
=IFERROR(INDEX(INDEX($A$2:$A$30,N(IF(1,SMALL(IF(COUNTIF($A$2:$A$30,$A$2:$A$30)>1,ROW($A$2:$A$30)-1,""),ROW(INDIRECT(1&":"&SUM(N(COUNTIF($A$2:$A$30,$A$2:$A$30)>1)))))))),N(IF(1,TRANSPOSE(SMALL(IF(INDEX($A$2:$A$30,N(IF(1,SMALL(IF(COUNTIF($A$2:$A$30,$A$2:$A$30)>1,ROW($A$2:$A$30)-1,""),ROW(INDIRECT(1&":"&SUM(N(COUNTIF($A$2:$A$30,$A$2:$A$30)>1))))))))=ROW(1:1),ROW(INDIRECT(1&":"&SUM(N(COUNTIF($A$2:$A$30,$A$2:$A$30)>1)))),""),COLUMN(A1)))))),"")
9楼
mn860429
重在参与,函数的不会写。
  1. Sub cc()
  2.     k = 1
  3.     For i = 2 To 30
  4.         If Application.CountIf(Range([a1], Cells(i, 1)), Cells(i, 1)) = 1 Then
  5.             k = k + 1
  6.             Cells(k, 4).Value = Cells(i, 1).Value
  7.         Else
  8.             Cells(Application.Match(Cells(i, 1).Value, Columns(4), 0), 255).End(xlToLeft).Offset(, 1).Value = Cells(i, 1).Value
  9.         End If
  10.     Next i
  11. End Sub
10楼
wangg913
D2:AG10



  1. =MID(INDEX(REPT(A2:A32,COUNTIF(A:A,A2:A32)),SMALL(IF(FREQUENCY(A:A,A:A),ROW(1:30),31),ROW(1:9))),COLUMN(A:AD),1)
11楼
laowuwyx
  1. =INDEX($A:$A,SMALL(IF($A$2:$A$30=INDEX($A:$A,SMALL(IF(FREQUENCY($A$2:$A$30,$A$2:$A$30),ROW($2:$30)),ROW(A1))),ROW($2:$30),4^8),COLUMN(A1)))&""
写了一个超级复杂的。
12楼
bluexuemei
=IF(COLUMN(A1)<=COUNTIF($A$2:$A$30,INDEX($A:$A,SMALL(IF(MATCH($A$2:$A$30,$A$2:$A$30,)=ROW($1:$29),ROW($1:$29),4^8)+1,ROW(1:1)))),INDEX($A:$A,SMALL(IF(MATCH($A$2:$A$30,$A$2:$A$30,)=ROW($1:$29),ROW($1:$29),4^8)+1,ROW(1:1)))&"","")
13楼
chenhh803
=INDEX($A:$A,SMALL(IF($A$2:$A$33=(ROW()-1),ROW($A$2:$A$33),34),COLUMN()-3))&""
14楼
sharprain
=IF(COLUMN()-3>COUNTIF($A$2:$A$30,ROW()-1),"",ROW()-1)
公式右拉,下拉

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap