ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: 大双子星

[求助] 统计重复个数问题,请老师指点

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-7-14 21:36 | 显示全部楼层

回复 8楼 shengyulon 的帖子

需做成动态区域,但A列的数据必须是数值型的,你现在A2:A20有的不是数值型的
我怎么把所有数据都转换成数值型的? 我输入时 没设置什么啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-7-14 21:46 | 显示全部楼层

回复 9楼 wangjguo44 的帖子

出现次数多少动态排序.rar (5.08 KB, 下载次数: 11)
老师帮我看看这个,是怎么回事 ,返回结果错误

TA的精华主题

TA的得分主题

发表于 2010-7-14 22:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 11楼 大双子星 的帖子

参考:前提A列数据必须是数值型(如附件A列) EXCEL2003版求助.rar (4.13 KB, 下载次数: 25)

TA的精华主题

TA的得分主题

发表于 2010-7-14 22:34 | 显示全部楼层
也来一个...

EXCEL2007版求助.rar

7.85 KB, 下载次数: 24

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-7-14 22:51 | 显示全部楼层

回复 14楼 xel_fan 的帖子

多谢 ,前面2个公式我还没 搞懂,正在分析消化,您的这个有点意思

TA的精华主题

TA的得分主题

发表于 2010-7-14 22:56 | 显示全部楼层
原帖由 大双子星 于 2010-7-14 21:27 发表
=MAX(IF(COUNTIF(AA,ROW($1:$10)-1)-(MATCH(ROW($1:$10)-1,--AA,)/100)=LARGE(COUNTIF(AA,ROW($1:$10)-1)-(MATCH(ROW($1:$10)-1,--AA,)/100),ROW(1:1)),ROW($1:$10)-1)) 能讲解下不?没弄明白

一.先把公式中部分函数、符号、“代号”做个简单介绍:
1.AA——定义了的名称,是动态取A列最后19个数据(见插入/名称/定义:AA=OFFSET(INDIRECT("$A"&LOOKUP(1,0/($A$1:$A$1000),ROW($A$1:$A$1000))),-18,,19),其中LOOKUP(1,0/(Sheet3!$A$1:$A$1000),ROW(Sheet3!$A$1:$A$1000))求出A列($A$1:$A$1000)最后有数据的单元格行号;INDIRECT("$A"&LOOKUP(1,0/($A$1:$A$1000),ROW($A$1:$A$1000)))最后单元格;OFFSET(INDIRECT("$A"&LOOKUP(1,0/($A$1:$A$1000),ROW($A$1:$A$1000))),-18,,19)最后单元格向上偏移18行起往下取19行的数据。
2.“--AA”——AA数据是文本公式,前面加上“--”,转化成数值型。
3.ROW($1:$10)-1——数字0~9。
4.COUNTIF(AA,ROW($1:$10)-1)——数字0~9依次在AA里出现的次数,本例(未在A21添加数字时,下同)为{1;3;3;1;2;2;3;1;2;1}:0一次、1三次、2三次……。
5.MATCH(ROW($1:$10)-1,--AA,)——数字0~9依次在AA里出现的位置,本例{12;11;1;4;6;14;3;15;2;9},0在12位、1在11位、2在第1位……;MATCH(ROW($1:$10)-1,--AA,)/100——把位置次序除以100,将此次序变成一个较小的加权数,与上一条结合在一起,COUNTIF(AA,ROW($1:$10)-1)-(MATCH(ROW($1:$10)-1,--AA,)/100)本例得到{0.88;2.89;2.99;0.96;1.94;1.86;2.97;0.85;1.98;0.91},就可以把出现次数一样多但先出现的变得比后出现的大一点,如1和2,都出现3次,但经过加权后,后出现的“1”3次变成2.89,而先出现的“2”3次变成2.99。这样便解决了“数字出现次数相同的话,在统计范围内谁先出现的,谁就排在上面”的可操作性。
二.整个公式:=MAX(IF(COUNTIF(AA,ROW($1:$10)-1)-(MATCH(ROW($1:$10)-1,--AA,)/100)=LARGE(COUNTIF(AA,ROW($1:$10)-1)-(MATCH(ROW($1:$10)-1,--AA,)/100),ROW(1:1)),ROW($1:$10)-1))——
1.IF(COUNTIF(AA,ROW($1:$10)-1)-(MATCH(ROW($1:$10)-1,--AA,)/100)=LARGE(COUNTIF(AA,ROW($1:$10)-1)-(MATCH(ROW($1:$10)-1,--AA,)/100),ROW(1:1)),ROW($1:$10)-1))——在第一个单元格,判断上面加权后得到的数组中哪一个数是第一大(ROW(1:1)):2.99,其对应的0~9中的数2就是原值,而其余的为false;随着下拉,依次判别哪个是第二大(ROW(2:2))2.97、第三大(ROW(3:3))2.89……对应的即为6、1……
2.MAX(……)——取出最大数,不言而喻吧。

[ 本帖最后由 wangjguo44 于 2010-7-14 23:12 编辑 ]

TA的精华主题

TA的得分主题

发表于 2010-7-14 23:06 | 显示全部楼层
原帖由 大双子星 于 2010-7-14 21:46 发表
752481
老师帮我看看这个,是怎么回事 ,返回结果错误

公式的局限性:当A51输入0以外的九个数之一,由于上推连续19行的数中没有出现过0,MATCH(ROW($1:$10)-1,--AA,)对0无处可找,出错

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-7-14 23:14 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 14楼 xel_fan 的帖子

您公式的DATA 指向什么?

[ 本帖最后由 大双子星 于 2010-7-14 23:24 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-7-14 23:27 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

回复 16楼 wangjguo44 的帖子

您这一说 我有点明白AA的意思。和你公式编辑思路了 多谢老师!多谢老师!

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-7-14 23:42 | 显示全部楼层

回复 18楼 大双子星 的帖子

看了 16楼王老师的帖子 我明白了 您这里的DATA 也是自定义名称
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-22 04:10 , Processed in 0.050250 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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