ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第75期]和我一起值班最多的人是谁?

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-6-10 22:47 | 显示全部楼层
07版本,解释在附件内。

[ 本帖最后由 草民1982111 于 2011-6-12 11:26 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-6-13 11:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
=INDEX(
    INDEX(INDEX($B$3:$D$13,N(IF(1,ROUNDUP(ROW($1:$31)/3,))),N(IF(1,MOD(ROW($1:$31)-1,3)+1))),N(IF(1,SMALL(IF(MATCH(INDEX($B$3:$D$12,N(IF(1,ROUNDUP(ROW($1:$30)/3,))),N(IF(1,MOD(ROW($1:$30)-1,3)+1))),INDEX($B$3:$D$12,N(IF(1,ROUNDUP(ROW($1:$30)/3,))),N(IF(1,MOD(ROW($1:$30)-1,3)+1))),)=ROW(1:30),ROW(1:30),31),ROW(1:30))))),
     RIGHT(LARGE(MMULT(TRANSPOSE(ROW(1:30)^0),N(INDEX(IF(IF(MMULT(N(B3:D12=B15),{1;1;1}),B3:D12,ROW(1:10)*40+COLUMN(A:C))=B15,4^8,IF(MMULT(N(B3:D12=B15),{1;1;1}),B3:D12,ROW(1:10)*40+COLUMN(A:C))),N(IF(1,ROUNDUP(ROW($1:$30)/3,))),N(IF(1,MOD(ROW($1:$30)-1,3)+1)))=TRANSPOSE(INDEX(INDEX($B$3:$D$13,N(IF(1,ROUNDUP(ROW($1:$31)/3,))),N(IF(1,MOD(ROW($1:$31)-1,3)+1))),N(IF(1,SMALL(IF(MATCH(INDEX($B$3:$D$12,N(IF(1,ROUNDUP(ROW($1:$30)/3,))),N(IF(1,MOD(ROW($1:$30)-1,3)+1))),INDEX($B$3:$D$12,N(IF(1,ROUNDUP(ROW($1:$30)/3,))),N(IF(1,MOD(ROW($1:$30)-1,3)+1))),)=ROW(1:30),ROW(1:30),31),ROW(1:30))))))))+COLUMN(A:AD)%,1),2)*1)&""
王五为名称引用。超长公式,嘿。10版本。

思路:
1.将区域中符合条件值找出,同时构建一个虚拟的数据填充,方便下面引用,如:=IF(MMULT(N(B3:D12="王五"),{1;1;1}),B3:D12,ROW(1:10)*3-3+COLUMN(A:C))
2.去除区域中B3:D13的重复值,并以1维的形式存储。
3.步骤1中的区域与步骤2中的非重复值构建查找对应重复出现最多的值
4.以步骤2中的区域进行查找匹配步骤3所返回的第二大值。

利用INDEX+N+IF返回内存数组区域,解题中的思路较为原始,没有技巧性。

[ 本帖最后由 aa7701914 于 2011-6-13 22:07 编辑 ]

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-6-13 12:06 | 显示全部楼层
还真想不出来,勉强凑个数:
=INDIRECT(TEXT(MAX((MODE(IF(MMULT(-(B3=B3:D12),{1;1;1})*(B3:D12<>B3),-(CODE(LEFT(B3:D12))&CODE(MID(B3:D12,2,1))&CODE(MID(B3:D12&0,3,1)))))=-(CODE(LEFT(B3:D12))&CODE(MID(B3:D12,2,1))&CODE(MID(B3:D12&0,3,1))))*(ROW(3:12)*10+{2,3,4})),"r0c0"),)

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-6-13 16:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
=INDEX(T(OFFSET(B2,ROW(3:32)/3,MOD(ROW(3:32),3))),RIGHT(MAX(FREQUENCY(IF((B3:D12="王五")+MMULT(-(B3:D12="王五"),{1;1;1}),COUNTIF(B3:D12,"<"&B3:D12)),COUNTIF(B3:D12,"<"&B3:D12))/1%+ROW(1:31)),2))
哈哈,太长了。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-14 00:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-6-14 03:46 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-6-14 05:20 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
看得我胃疼(真疼!物理性)
脑子不好使了,转不过弯。

TA的精华主题

TA的得分主题

发表于 2011-6-14 11:25 | 显示全部楼层
惭愧,用了好长时间也没有找到满意的方法,向大家多多学习。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-14 15:06 | 显示全部楼层
EH是一个藏龙卧虎的论坛,里面高手如云。所以小子在评题的时候就有一种架在火炉上烤的感觉,生怕出现一点失误,浪费了各位老师的一番心血。               
因这是小子的第一次出题,水平有限,难免考虑不周,如各位老师对评分结果有所疑问,请及时提出,可发消息结我或者wangg913版主,谢谢大家的精彩解答!谢谢大家的支持!您的支持是我前进的动力。               
对于自己认为优秀的解答,请能够献花的朋友不要吝啬自己的鲜花。               
感谢EH提供一个这么好的平台!感谢wangg913版主在这一次出题中的大力支持!               
有老师曾发短消息说:“此题即然充许2007版本的公式,为什么不允许03版本定义名称,这对于03版本的用户有点不太公平。”               
我在这里解释一下,因为考虑到评分和审题的问题所以才做此决定的,在这里要向03版本用户说声对不起,因为这样对你们确实不公平,还请大家多多谅解!               
               
评分标准:               
公式长度小于(含)180字符        技术分3分,财富50       
公式长度小于(含)200字符        技术分2分,财富40       
公式长度小于(含)300字符        技术分2分,财富20       
公式长度大于300字符        技术分2分       
不符合        财富10做为激励

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-6-14 15:08 | 显示全部楼层
最优解法:        fangjianp 老师        字符数:154
        INDIRECT(TEXT(MAX((MODE(IF(MMULT(-(B3:D12="王五"),{1,2,3}-{1;2;3}),COUNTIF(B3:D12,">"&B3:D12)))=COUNTIF(B3:D12,">"&B3:D12))*ROW(3:12)*10+{2,3,4}),"r0c0"),)                               
        说明:                               
        fangjianp老师的后一条公式达到字符数147,wcymiss老师的后一条公式达到141。但这两条公式在实际应用中还要考虑不在列表中的因素。如有不对之处还请大家指正。                               
        此条公式通用性强,字符短,矩阵的构造达到登峰造极                               
        感谢fangjianp老师的精彩解答,                               
                                       
题目总结:                                       
因文本在函数中处理确实是一个难点,在论坛中出现最多的疑难杂症都与文本有关。因为如果要求出众数的话,就必须把文本变为数值。此为本题难点。这次各位老师的解题总体思路大致为两种                                       
1:先把多维转为一维,再利用查找函数求出他的位置,利用位置来取得众数,然后再取得姓名;                                       
2:利用COUNTIF函数可以比较文本的大小,来取得每个文本的唯一数字标记;                                       
3:有的老师想到用CODE函数来区分文本,但此法局限性太大,如果文本比较长就难区分了,因草民老师的公式具有扩展性,所以得分,其它老师用穷尽办法的都没有给分。                               
      因为取三个字符的公式,如出现少数民族姓名那公式就会无限长了。此题的考点就在于如何区分文本,如何把文本的多维转一维。





[ 本帖最后由 chenhh803 于 2011-6-15 00:16 编辑 ]

本帖子中包含更多资源

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

x

评分

3

查看全部评分

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

本版积分规则

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

GMT+8, 2024-11-21 22:56 , Processed in 0.039127 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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