ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] HI,来吧,咱们一起来边练边学FREQUENCY!

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2014-10-16 14:25 | 显示全部楼层
本帖已被收录到知识树中,索引项:FREQUENCY
看见星光 发表于 2014-10-16 09:38
您不要喊我老师,我会寒毛。。。第一个公式可以再想下,没事干嘛去啊。第二个公式,重复次数最少的,未必 ...

午饭的时候也想到了最小不一定就是一次,刚才抽时间吧公式写好了,一看其他回帖又撞车了。
  1. =MOD(MAX(FREQUENCY(B113:B124,B113:B124)/1%%+B113:B125),1000)
复制代码
  1. =MOD(MIN(TEXT(FREQUENCY(B113:B124,B113:B124),"0;;99")/1%%+B113:B125),1000)
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-17 09:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 看见星光 于 2014-10-17 12:28 编辑

第六道题想表达的是frequency和text搭配的一种使用方法,以及规则说明中的第二点。
frequency和text进行搭配,也算是一种套路,可以擦出不少火花。当然,text是数组中的大众情人,和谁都能擦出火花。
不过在解题中,很多朋友选择使用了countif,可是如果使用countif,frequency就可以不用了的。呵呵~~~
以6.2稍做解释。
=MOD(MIN(TEXT(FREQUENCY(B113:B124,B113:B124),"[=]15")/1%%+B113:B125),10^4)
通过TEXT函数,将FREQUENCY的结果,等于0返回15,一个比理论上最大重复次数(13)高的数值,也可以是100,200等等,其余返回原来的结果。
然后除以0.0001,即乘以10^4,再加上B113:B125的值,用MIN函数从中取最小。
最后用MOD,取余数,得出结果。
这里之所以加B113:B125,而不是B113:B124,是因为FREQUENCY返回的结果,比分段点多一个,多出的那一个表示最高区间之上数值的个数——即开篇规则的第二点。
最后附送大家一个小技巧,1/(1/(公式)),比如重复次数最多的最大值,可以写成这样:
=MOD(MIN(IFERROR(1/(1/FREQUENCY(B113:B124,B113:B124)),15)/1%%+B113:B125),10^4)
1/1/值,结果当然还是原来的值,其中加了(),变成1/(1/()),更改了先后的运算规则,可以有很多意想不到的效果。
比如判断大小,先用1/值,变大为小,变小为大,取值后,再通过1/(1/值)复原。
再比如这里的和IFERROR搭配,将0值替换为另外一个值,IFERROR(1/(1/FREQUENCY(B113:B124,B113:B124)),15)。。。。
很有意思的一个技巧,感谢教给我这个技巧而很久未见的头版。
更多思路参见114楼,海鲜老师的解答
下面更新第七题
frequency (7).rar (60.35 KB, 下载次数: 96)
2.jpg

点评

今天才开始看这个帖子,简直学到东西了。  发表于 2018-4-13 18:03
原来变大变小的就是为了以错误值的形式甩开0值……巧妙!!!  发表于 2014-10-18 17:39

评分

7

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-10-17 10:19 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 人事难料 于 2014-10-17 10:29 编辑

先扔一个出来,等会再看看怎么修缮
  1. =SUM(LARGE(TEXT(FREQUENCY(B130:D130,B130:D130),"1;;0")*TRANSPOSE(B130:E130),{1;2;3;4})*10^{0;1;2;3})
复制代码


题外话:这几天收获不小,重新意识到练习才是学习的最好方法,拳不离手曲不离口,谢谢星光同学。

TA的精华主题

TA的得分主题

发表于 2014-10-17 10:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看见星光 发表于 2014-10-17 09:22
第六道题想表达的是frequency和text搭配的一种使用方法,以及规则说明中的第二点。frequency和text进行搭配 ...

你说的方法很好
另:1/(1/(公式))的方法可简化成 1/(公式)^-1
第七题
  1. =IF(COUNTIF(B130:D130,),0,)&SUBSTITUTE(MMULT(10^COLUMN(A:K),(FREQUENCY(B130:D130,10-ROW($1:$10))>0)*(10-ROW($1:$11))),0,)
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-17 10:49 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 看见星光 于 2014-10-17 10:51 编辑
人事难料 发表于 2014-10-17 10:19
先扔一个出来,等会再看看怎么修缮

题外话:这几天收获不小,重新意识到练习才是学习的最好方法,拳不离 ...

知己啊,幸好你不是女的,不然我得多痛苦。
潇潇那家伙也不知道VB学的怎么样了,晚上问他。
公式有几个地方可以简。嘻嘻。
TEXT运算速度并不好,它要把所有可能都判断完,再出结果,这里并非首选。
对于分段结果,虽然三个点计频结果为4个,但最后一个是大于最大值的个数,这里毫无疑问是0,所以就又有得简啦。
然后。。。然后。。。~~0  1  7等时候,公式会出错。

TA的精华主题

TA的得分主题

发表于 2014-10-17 12:48 | 显示全部楼层
本帖最后由 极地飞雪007 于 2014-10-17 15:31 编辑

=IF(SUM(B130:D130)=0,0,--SUBSTITUTE(SUM(IF(FREQUENCY(B130:D130,ROW($1:$9)-1),ROW($1:$10)-1)*10^(10-ROW($1:$10))),0,""))
公式好像长了点

再优化一下:
=IFERROR(--SUBSTITUTE(MMULT(B130:E130*10^(9-B130:E130),N(FREQUENCY(B130:D130,B130:D130)>0)),0,),0),长度节约21

再补充一个老土的办法:
=TEXT(SUBSTITUTE(123456789-SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(123456789,B140,0),C140,0),D140,0),0,),"0;;;!0")

终于知道坑在哪了!
=IF(MIN(B130:D130)=0,0,"")&SUBSTITUTE(MMULT(B130:E130*10^(9-B130:E130),N(FREQUENCY(B130:D130,B130:D130)>0)),0,)

点评

假如第一行不是三个4,而是一个0两个4,你的公式不能显示出这个0,和我之前的错误一样。  发表于 2014-10-17 13:41

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-10-17 13:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
看见星光 发表于 2014-10-17 10:49
知己啊,幸好你不是女的,不然我得多痛苦。
潇潇那家伙也不知道VB学的怎么样了,晚上问他。
公式有几个 ...

咋吃了个午饭,公式写得更长了,早知道饿着肚子先写公式了。
  1. =TEXT(SUM(LARGE((FREQUENCY(B130:D130,ROW($1:$10)-1)>0)*(ROW($1:$11)-1),{1;2;3})*10^{0;1;2}),REPT("0",SUM(1/COUNTIF(B130:D130,B130:D130))))
复制代码
解决了0的问题,但是冥冥中觉得这个如果用MID来做的话应该会更容易,但是抓不住这个线头。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2014-10-17 14:33 | 显示全部楼层
极地飞雪007 发表于 2014-10-17 12:48
=IF(SUM(B130:D130)=0,0,--SUBSTITUTE(SUM(IF(FREQUENCY(B130:D130,ROW($1:$9)-1),ROW($1:$10)-1)*10^(10-R ...

没有问题啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2014-10-17 14:47 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
极地飞雪007 发表于 2014-10-17 14:33
没有问题啊

比如0~1~7,您的公式结果为漏掉0的。

TA的精华主题

TA的得分主题

发表于 2014-10-17 14:58 | 显示全部楼层
题外话(主题是FREQUENCY)
就这3个单元格
用最土最笨的办法
  1. =B130&IF(C130=B130,,C130)&IF(OR(D130=C130,D130=B130),,D130)
复制代码
效果也不错
要是排序
  1. =MIN(B130:D130)&IF(SMALL(B130:D130,2)=MIN(B130:D130),,SMALL(B130:D130,2))&IF(MAX(B130:D130)=SMALL(B130:D130,2),,MAX(B130:D130))
复制代码
傻瓜型的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 03:26 , Processed in 0.041479 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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