ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第82期]数字的个位数在一行内出现频率最高的数字的总和(已总结评分)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-9-28 10:45 | 显示全部楼层
本帖最后由 悟空师弟 于 2011-10-8 11:04 编辑

弄个223的:
=SUM((MOD(SMALL(LEN(SUBSTITUTE(LEFT(MMULT(RIGHT(A1:I9)*10^COLUMN(B:J),ROW(1:9)^0),9),RIGHT(A1:I9),))+ROW(1:9)/1%,ROW(1:9)*9-8),10)=LEN(SUBSTITUTE(LEFT(MMULT(RIGHT(A1:I9)*10^COLUMN(B:J),ROW(1:9)^0),9),RIGHT(A1:I9),)))*A1:I9)

还有个209的,但不通用,不知是否能通过:
=SUM((MOD(SMALL(LEN(SUBSTITUTE(MMULT(RIGHT(A1:I9)*10^COLUMN(B:J),ROW(1:9)^0)%,RIGHT(A1:I9),))+ROW(1:9)/1%,ROW(1:9)*9-8),10)=LEN(SUBSTITUTE(MMULT(RIGHT(A1:I9)*10^COLUMN(B:J),ROW(1:9)^0)%,RIGHT(A1:I9),)))*A1:I9)

交了先,得空再看能不能简化。

2011-10-8 19:55 简化后公式(197字符):
=SUM((MOD(SMALL(INT(ROW(10:100)/10)*10+FREQUENCY(ROW(1:9)*10+RIGHT(A1:I9),ROW(10:99)),ROW(1:9)*10),10)=9-LEN(SUBSTITUTE(LEFT(MMULT(RIGHT(A1:I9)*10^COLUMN(B:J),ROW(1:9)^0),9),RIGHT(A1:I9),)))*A1:I9)


2011-10-8 11:03简化后公式(183字符):
=SUM((MOD(SMALL(FLOOR(ROW(1:91)-1,10)+FREQUENCY(ROW(1:9)*10+RIGHT(A1:I9),ROW(10:99)),ROW(1:9)*10),10)=9-LEN(SUBSTITUTE(LEFT(MMULT(MOD(A1:I9,10),10^ROW(1:9)),9),RIGHT(A1:I9),)))*A1:I9)


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-16 11:25 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
大伙要是都写点结题思路,对看答案学习的人帮助会很大啊。。

点评

大概地在27楼写了下,希不吝赐教。  发表于 2011-10-16 23:47

TA的精华主题

TA的得分主题

发表于 2011-10-5 12:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 Zaezhong 于 2011-10-5 13:50 编辑
  1. =SUM(ISNUMBER(MATCH(RIGHT(A1:I9)+ROW(1:9)/1%,MMULT(TRUNC(SMALL(FREQUENCY(ROW(1:9)*10+RIGHT(A1:I9),ROW(10:98))*10+TEXT(ROW(10:99),"0\00"),ROUNDUP(ROW(1:90),{0,0,-1})),-{0,2,1}),{1;1;-1}),))*A1:I9)
复制代码
跟上次排班的题目有点像啊

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-16 08:37 | 显示全部楼层
总算又拿到3分了,本题想得出正确结果不难,难在如何公式简短,公式内等号两边存在相同计算部分公式,想简化去掉内等号达到最短但没有成功,向157字元楼层学习!

点评

这题好像最高2分吧,呵呵  发表于 2011-10-16 08:53

TA的精华主题

TA的得分主题

发表于 2011-10-12 08:38 | 显示全部楼层
想了好久也没能写出符合条件的公式,贴一个超字符的{:soso_e110:},不为得分,重在参与。
  1. =SUM((LOOKUP((ROW(1:9)-1)*9+COLUMN(A:I),ROW(1:81),MMULT(--(INT(COLUMN(I:CK)/9)&RIGHT(N(OFFSET(A1,COLUMN(I:CK)/9-1,MOD(COLUMN(I:CK),9))))=INT(ROW(9:89)/9)&RIGHT(N(OFFSET(A1,ROW(9:89)/9-1,MOD(ROW(9:89),9))))),ROW(9:89)^0))=MOD(SMALL(--(INT(ROW(10:99)/10)&FREQUENCY(--(ROW(1:9)&MOD(A1:I9,10)),ROW(10:98))),10*ROW(1:9)),10))*A1:I9)
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-15 17:47 | 显示全部楼层
本帖最后由 草民1982111 于 2011-10-15 17:48 编辑
  1. =SUM((INDEX(MMULT(-(RIGHT(N(OFFSET(A1,(ROW(1:81)-1)/9,COLUMN(A:I)-1)))=RIGHT(N(OFFSET(A1,(ROW(1:81)-1)/9,MOD(ROW(1:81)-1,9))))),ROW(1:9)^0),N(IF(1,ROW(1:9)*9-9+COLUMN(A:I))))=-RIGHT(SMALL(FREQUENCY(RIGHT(A1:I9)+ROW(1:9)*10,ROW(10:98))+INT((ROW(1:90)-1)/10)*10,10*ROW(1:9))))*A1:I9)
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-15 18:29 | 显示全部楼层
本帖最后由 wcymiss 于 2011-10-16 00:12 编辑

结贴,请勿再修改答案
我的公式:
  1. =SUM(ISNUMBER(MATCH(RIGHT(A1:I9)+ROW(1:9)*10,MMULT(TRUNC(LARGE(-(LEFT(ROW(10:99))&FREQUENCY(RIGHT(A1:I9)+ROW(1:9)*10,ROW(10:98))&ROW(10:99)),CEILING(ROW(1:90),{1,10})),{0,-2}),{-1;1}),))*A1:I9)
复制代码

呵呵,太长了

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-15 18:31 | 显示全部楼层
本帖最后由 wcymiss 于 2011-10-16 23:33 编辑





157长度的公式相当精彩。考虑到7楼和17楼的思路与157长度公式的思路一致,所以一并评3分。

8楼和21楼的公式可惜了,都是因为对0作为最多个位数的情况未考虑周全。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-10-15 18:33 | 显示全部楼层
本帖最后由 wcymiss 于 2011-10-16 23:38 编辑

本题难点:        
1、无法用Countif处理,内存数组求行内次数有一定难度。        
2、最大次数、每个数字次数、数据源的维度,难以一一对应        
3、公式的通用性。主要是对0的处理方面。        

解题方法:  
方法一、直接mmult法。
  MMULT(--(INT(COLUMN(I:CK)/9)&RIGHT(N(OFFSET(A1,COLUMN(I:CK)/9-1,MOD(COLUMN(I:CK),9))))=INT(ROW(9:89)/9)&RIGHT(N(OFFSET(A1,ROW(9:89)/9-1,MOD(ROW(9:89),9))))),ROW(9:89)^0)
  如9楼、11楼、23楼、24楼公式。(9楼稍有不同)
  结果维度:纵向1维,1列81行。
  优点:与数据源对应相对比较简单,用lookup或index变形则可得到与数据源一一对应的二维数组。
  缺点:整体公式较长。

方法二、frequency法
  FREQUENCY(RIGHT(A1:I9)+ROW(1:9)*10,ROW(10:98))
  如3楼前2个公式、4楼前2个公式、20楼、22楼及楼主公式。
  结果维度:纵向1维,1列90行。
  优点,求次数公式相对较短。
  缺点:与数据源对应比较困难。需要构造复杂的2列90行的二维数组进行运算,最后用match取出与数据源一一对应的数据,思路比较复杂。

方法三、Len + Substitute法
  LEN(SUBSTITUTE(LEFT(MMULT(MOD(A1:I9,10),10^ROW(1:9))*10^9,9),RIGHT(A1:I9),))
  如4楼部分公式,5、12、13、14、16、18、19楼公式。
  结果维度:9行9列二维数组
  优点:与数据源一一对应。
  缺点:在0的处理上比较容易出纰漏。

方法四、Mmult + 10^right法
  MID(MMULT(10^-RIGHT(A1:I9),ROW(1:9)^0)%,RIGHT(A1:I9)+4,1)
  如3、4、7、10楼公式。16、17楼也有部分应用。
  结果维度:9行9列二维数组
  优点:公式相当短,且与数据源一一对应。

具体见附件。公式解析不擅长,只是大概地做了下庖丁,希望对大家理解公式能有帮助。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?免费注册

x

点评

前一阵子忙IPO了,错过了这么强大的题目和精彩解答,学习  发表于 2011-11-23 18:23

评分

7

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-15 19:34 | 显示全部楼层
这个题目的思维好窄,实在很难想到,向各位学习!
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 19:23 , Processed in 0.036992 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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