Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 1962|回复: 7

[已解决]使用甚么公式可以得到频率最高年龄往下排?

[复制链接]
发表于 2017-7-7 08:45 | 显示全部楼层 |阅读模式
答案结果在C1:C6

求老师帮忙


最佳答案
2017-7-7 12:31
=INDEX(A:A,29-RIGHT(LARGE(IF(FREQUENCY(A$2:A$28,A$2:A$28)>1,FREQUENCY(A$2:A$28,A$2:A$28)/1%+29-ROW($2:$28)),ROW()),2))

book12.rar

6.41 KB, 下载次数: 6

发表于 2017-7-7 09:05 | 显示全部楼层
这样是容易理解一些的,结果 与你略不同 , 同样次数 , 按年龄大的优先了
       ...
辅助列 B2    =IF(COUNTIF(A$1:A2,A2)=1,COUNTIF(A:A,A2)*1000+A2,0)
辅助列 是 第一次 出现的年龄 的计数*1000 + 年龄 , 重复出现的就当做0
   

C1    =MOD(LARGE(B:B,ROW(A1)),1000)
取 (b列第 n 大的值 ) 除以1000 的余数

评分

参与人数 1 +1 收起 理由
wooikeat9128 + 1 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-7-7 09:26 | 显示全部楼层
回复

使用道具 举报

发表于 2017-7-7 11:48 | 显示全部楼层
砂海 发表于 2017-7-7 09:05
这样是容易理解一些的,结果 与你略不同 , 同样次数 , 按年龄大的优先了
       ...
辅助列 B2    =IF(COU ...

辅助列的算法+Mod脱壳的方法很是精妙,学习了,谢啦。

如果不添加辅助列的话,可以这样。
C1==IF(ROW()<=SUM(1/COUNTIF($A$2:$A$28,$A$2:$A$28)),MOD(LARGE(IF(FREQUENCY($A$2:$A$28,$A$2:$A$28)<>0,FREQUENCY($A$2:$A$28,$A$2:$A$28)*1000+($A$2:$A$28),""),ROW(A1)),1000),"")

按Ctrl+Shift+Enter后往下拉。

评分

参与人数 1 +1 收起 理由
wooikeat9128 + 1 赞一个

查看全部评分

回复

使用道具 举报

发表于 2017-7-7 12:31 | 显示全部楼层    本楼为最佳答案   
=INDEX(A:A,29-RIGHT(LARGE(IF(FREQUENCY(A$2:A$28,A$2:A$28)>1,FREQUENCY(A$2:A$28,A$2:A$28)/1%+29-ROW($2:$28)),ROW()),2))
QQ截图20170707123111003.png

评分

参与人数 2 +31 金币 +30 收起 理由
望帝春心 + 30 + 30 来学习
wooikeat9128 + 1 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-7-8 11:44 | 显示全部楼层
各位老师太厉害了,感谢各位老师们
回复

使用道具 举报

发表于 2017-7-8 21:46 | 显示全部楼层
楼主请试一试吧
B2  下拉
{=MODE(IF((A$2:A$50<>"")*(COUNTIF(B$1:B1,A$2:A$50)=0),A$2:A$50),0,0)}

评分

参与人数 1 +1 收起 理由
wooikeat9128 + 1 赞一个

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-7-20 21:22 | 显示全部楼层
谢谢您,老师您真牛
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-22 03:57 , Processed in 0.314635 second(s), 18 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表