ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] [第83期]舞林大会之交换舞伴

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-11-2 21:08 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 bluexuemei 于 2011-11-3 09:39 编辑

方法一:F3:F14区域数组右拉至G3:G14,144字符,
  1. =T(INDIRECT("A"&MOD(SMALL(IF($B2:$B25=F2,MATCH($C2:$C25,IF($B2:$B25=F2,$C2:$C25,COUNTA(A2:A25)/2+1-$C2:$C25),)/1%+ROW(2:25),5^7),ROW()-2),100)))
复制代码
方法二:F3数组公式右拉下拉,160字符,
  1. =INDIRECT("A"&MOD(SMALL(IF($B$2:$B$25=F$2,MATCH($C$2:$C$25,IF($B$2:$B$25=F$2,$C$2:$C$25,COUNTA(A$2:A$25)/2+1-$C$2:$C$25),)/1%+ROW($2:$25),5^7),ROW(A1)),100))&""
复制代码

点评

思路特别,破常规,本期竞赛最佳公式!  发表于 2011-12-3 13:15

评分

4

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-3 08:23 | 显示全部楼层
本帖最后由 一嘟噜钥匙 于 2011-11-3 11:36 编辑

181字符
  1. =INDEX(A2:A25,RIGHT(SMALL(MATCH(IF(B2:B25=F2,MAX(C2:C25)+1-C2:C25,C2:C25),IF(B2:B25=F2,MAX(C2:C25)+1-C2:C25,C2:C25),)*10^6+IF(B2:B25=G2,10^4)+ROW(1:24),(ROW(1:12)-1)*2+{1,2}),2))&""
复制代码
 多单元格数组

减了几个字符,176字符
  1. =INDEX(A2:A25,RIGHT(SMALL(MATCH(IF(B2:B25=F2,MAX(C2:C25)+1-C2:C25,C2:C25),IF(B2:B25=F2,MAX(C2:C25)+1-C2:C25,C2:C25),)/1%%+(B2:B25=G2)/1%+ROW(1:24),(ROW(1:12)-1)*2+{1,2}),2))&""
复制代码

本帖子中包含更多资源

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

x

点评

谢谢小Z帮忙。  发表于 2011-12-1 16:36

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-3 10:49 | 显示全部楼层
本帖最后由 fangjianp 于 2011-11-3 20:17 编辑

重发一个,单元格公式一样,右拉下拉,185字,但顺序不完全相同,可以吗?




你一个人占三个楼层,大家都象你一样不乱套了?!

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-3 11:26 | 显示全部楼层
本帖最后由 ff8feng 于 2011-11-3 13:51 编辑

公式为F3:G14多单元格数组公式,一次性输入
=T(OFFSET(A1,RIGHT(SMALL(MATCH(ABS(C2:C25-(B2:B25=G2)*MAX(C2:C25+1)),ABS(C2:C25-(B2:B25=G2)*MAX(C2:C25+1)),)/1%%+(B2:B25=G2)/1%+ROW(1:24),2*ROW(1:12)-1+{0,1}),2),))

点评

思路很好,简化不是最优,有潜力!  发表于 2011-12-3 13:24
想送你点花,却不知道该怎么送了。。。。好像我送不了  发表于 2011-11-29 23:40
看到你了  发表于 2011-11-27 14:54

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-4 16:05 | 显示全部楼层
本帖最后由 tslx8129 于 2011-11-4 17:25 编辑

=INDEX(A2:A25,MID(INDEX(MID(TEXT(ROW(1:24),"00")&TEXT(MATCH(IF(IF(B2:B25=F2,G2,F2)&COUNTA(A2:A25)/2+1-C2:C25=H2&COUNTA(A2:A25)/2+1,"",IF(B2:B25=F2,G2,F2)&COUNTA(A2:A25)/2+1-C2:C25),B2:B25&C2:C25,),"00")&TEXT(ROW(1:24),"00"),1+2*(B2:B25=G2),4),SMALL(((ROW(1:24)<MATCH(MID(F2&G2&"",IF(B2:B25="",3,IF(B2:B25=F2,2,1)),1)&IF(C2:C25="","",COUNTA(A2:A25)/2+1-C2:C25),B2:B25&C2:C25,))*ROW(1:24)=0)*24+(ROW(1:24)<MATCH(MID(F2&G2&"",IF(B2:B25="",3,IF(B2:B25=F2,2,1)),1)&IF(C2:C25="","",COUNTA(A2:A25)/2+1-C2:C25),B2:B25&C2:C25,))*ROW(1:24),ROW(1:24))),{1,3},2))&""

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-7 22:41 | 显示全部楼层
本帖最后由 lg_cai 于 2011-11-8 10:38 编辑

=INDIRECT("A"&MOD(SMALL((MATCH(($B$2:$B$25=F$2)*$C$2:$C$25,IF(ROW($1:$25)<25,MOD(-1^($B$2:$B$25<>F$2)*$C$2:$C$25,MAX($C$2:$C$25)+1),),)+($C$2:$C$25>0))*26+ROW($2:$25),ROW()-2),26))&""

=OFFSET($A$1,1/MOD(SMALL(MATCH(($B$2:$B$25=F$2)*$C$2:$C$25,IF(ROW($1:$25)<25,MOD(-1^($B$2:$B$25<>F$2)*$C$2:$C$25,MAX($C$2:$C$25)+1),),)+1/ROW($2:$25),ROW()-2),1)-1,)&""

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-11 12:44 | 显示全部楼层
本帖最后由 wjh619993018 于 2011-11-11 12:45 编辑
  1. =INDEX(A2:A25,RIGHT(SMALL(TEXT(MATCH((B2:B25=G2)*12+C2:C25,COUNT(A2:C25)/2+13-(B2:B25=G2)*12-TEXT(C2:C25,"0;;21"),),"[<"&ROW(1:24)&"];"&ROW(1:24))/1%%+(B2:B25=G2)/1%+ROW(1:24),ROW(1:12)*2-{1,0}),2))&""
复制代码

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-11 13:03 | 显示全部楼层
只准引用源数据(A1:C25,F2:G2),可否引用其中的一部分比如A1:A25.、F2?不是很清楚,请说明谢谢。题目的要求是不是公式中只能出现A1:C25和F2:G2这两种引用范围?比如A1:A25=F2这样的都是不满足要求?

TA的精华主题

TA的得分主题

发表于 2011-11-13 23:54 | 显示全部楼层
参与一下~
F3格:
  1. =IF(INDEX($B$1:$B$25,MIN(--TEXT(ISERROR(MATCH("*"&$A$2:$A$25&"*",$F$2:$F2&$G$2:$G2,))*ROW($2:$25),"0;;25")))=F$2,INDEX($A$1:$A$25,MIN(--TEXT(ISERROR(MATCH("*"&$A$2:$A$25&"*",$F$2:$F2&$G$2:$G2,))*ROW($2:$25),"0;;25"))),INDEX($A$1:$A$25,MAX(ROW($A$1:$A$25)*($B$1:$B$25=F$2)*($C$1:$C$25=MAX($C$1:$C$25)+1-INDEX($C$1:$C$25,MIN(--TEXT(ISERROR(MATCH("*"&$A$2:$A$25&"*",$F$2:$F2&$G$2:$G2,))*ROW($2:$25),"0;;25")))))))
复制代码
410字符,数组公式。不过不容错。
继续思考~~~

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-14 17:51 | 显示全部楼层
本帖最后由 hzhb14796 于 2011-11-17 17:35 编辑

=INDEX($A$2:$A$25,MATCH(1*RIGHT(SMALL(IF(FREQUENCY(($B$2:$B$25=D2)*($C$2:$C$25),IF(($B$2:$B$25=D2)*($C$2:$C$25),$C$2:$C$25,MAX($C$2:$C$25)+1-$C$2:$C$25)),IF(($B$2:$B$25=D2)*($C$2:$C$25),$C$2:$C$25,MAX($C$2:$C$25)+1-$C$2:$C$25),999)+ROW(1:25)*100,ROW(1:25)),2),IF(B2:B25<>"",$C$2:$C$25*($B$2:$B$25=D2),99),0))&""
超长公式

减下字符
=INDEX($A2:$A25,MATCH(1*RIGHT(SMALL(IF(FREQUENCY($C2:$C25,IF($B2:$B25=F2,$C2:$C25,MAX($C2:$C25)+1-$C2:$C25)),IF($B2:$B25=F2,$C2:$C25,MAX($C2:$C25)+1-$C2:$C25),999)+ROW(1:25)*100,ROW(1:25)),2),IF(B2:B25="",99,$C2:$C25*($B2:$B25=F2)),))&""




本帖子中包含更多资源

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

x

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-3-29 13:53 , Processed in 0.056122 second(s), 19 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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