ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-10-28 13:06 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
在F3输入=OFFSET(A$1,SMALL(IF(B$2:B$25=F$2,ROW($1:$24),30),ROW(A1)),)&""
在G3输入=IF(ROW()>COUNTA($A$2:$A$25)/2+2,"",OFFSET(A$1,MATCH((COUNTA($A$2:$A$25)/2+1-SUMIF(A$1:A$25,F3,C$1:C$25))&G$2,C$2:C$25&B$2:B$25,0),)

均三键回车下拉。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-28 22:01 | 显示全部楼层
费了九牛二虎之力,可算做出来了,
不过公式超了,先占位,以后修改。等结贴时看下高手们的解答吧。
如果不按次序长度为211个字符
=IF(ROW()-2>COUNTA(A$2:A$25)/2,"",IF(F$2="男",VLOOKUP(ROW()-2,IF($B$2:$B$25=$F$2,IF({1,0},$C$2:$C$25,$A$2:$A$25)),2,),VLOOKUP(COUNTA($A$2:$A$25)/2-ROW()+3,IF($B$2:$B$25=$G$2,IF({1,0},$C$2:$C$25,$A$2:$A$25)),2,)))
如果按次序,长度为382个字符
=IF(ROW()>COUNTA($A$2:$A$25)/2+2,"",VLOOKUP(INDEX(ABS(($B$2:$B$25="女")*(-COUNTA($A$2:$A$25)/2-1)+$C$2:$C$25),SMALL(IF(MATCH(ABS(($B$2:$B$25="女")*(-COUNTA($A$2:$A$25)/2-1)+$C$2:$C$25),ABS(($B$2:$B$25="女")*(-COUNTA($A$2:$A$25)/2-1)+$C$2:$C$25),)=ROW($1:$24),ROW($1:$24),4^8),ROW()-2))&H$2,IF({1,0},ABS(($B$2:$B$25="女")*(-COUNTA($A$2:$A$25)/2-1)+$C$2:$C$25)&$B$2:$B$25,$A$2:$A$25),2,))

汗一个,函数都差点超限。

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-28 22:38 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
  1. =T(OFFSET(A1,RIGHT(SMALL(MATCH((C2:C25-MAX(C2:C25+1)*(B2:B25=F2))^2,(C2:C25-MAX(C2:C25+1)*(B2:B25=F2))^2,)/1%%+(B2:B25=G2)/1%+ROW(1:24),ROW()*2-{5,4}),2),))
复制代码
F3:G14多单元数组公式。长度156

点评

同类解法中最简,思路好,功力深厚!  发表于 2011-12-3 13:19

评分

5

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-30 13:02 | 显示全部楼层
本帖最后由 chenhh803 于 2011-10-30 17:33 编辑

呵呵,也做一个能出结果的,多单元格区域数组公式:
=INDEX(A2:A25,RIGHT(SMALL(MATCH(ABS(C2:C25-(B2:B25="女")*(COUNT(C2:C25)/2+1)),ABS(C2:C25-(B2:B25="女")*(COUNT(C2:C25)/2+1)),)/1%%+(B2:B25="女")/1%+ROW(1:24),ROW(1:12)*2-{1,0}),2))&""
优化一下:
=INDEX(A2:A25,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),ROW()*2-{5,4}),2))&""
再简一点:
=INDEX(A2:A25,RIGHT(SMALL(MATCH((C2:C25-(B2:B25=G2)*MAX(C2:C25+1))^2,(C2:C25-(B2:B25=G2)*MAX(C2:C25+1))^2,)/1%%+(B2:B25=G2)/1%+ROW(1:24),ROW()*2-{5,4}),2))&""

点评

同类解法中最简,思路好,功力深厚!  发表于 2011-12-3 13:21

评分

3

查看全部评分

TA的精华主题

TA的得分主题

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

F3:G14=INDEX(A2:A25,--MID(RIGHT(LARGE(-IF((B2:B25=F2)*C2:C25+TRANSPOSE((B2:B25=G2)*C2:C25)=MAX(C2:C25)+1,IF(ROW(1:24)<COLUMN(A:X),ROW(1:24),COLUMN(A:X))&TEXT(ROW(1:24),"00")&TEXT(COLUMN(A:X),"00"),992424),ROW(1:12)),4),{1,3},2))&""

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-31 09:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 chunlin1wang 于 2011-11-12 09:51 编辑

F3:

  1. =INDEX($A$2:$A$25,INDEX(IF($B$2:$B$25=F$2,ROW($1:$24),MATCH($C$2:$C$25+($B$2:$B$25=$F$2)%,IF($C$2:$C$25,MAX($C$2:$C$25)+1-$C$2:$C$25+($B$2:$B$25=$G$2)%,),)),MIN(IF(COUNTIF($F$2:$G2,$A$2:$A$25),24,ROW($1:$24)))))&""
复制代码
F3:G3 勉强190字符
  1. =INDEX(A$2:A$25,INDEX(MATCH(-1^(B$2:B$25=F$2:G$2)*(C$2:C$25-(B$2:B$25=G$2)*(MAX(C$2:C$25)+1)),(B$2:B$25=G$2)*(MAX(C$2:C$25)+1)-C$2:C$25,),MIN(IF(COUNTIF(F$2:G2,A$2:A$25)=0,ROW($1:$24)))))&""
复制代码
F3:G3 176
  1. =INDEX(A$2:A$25,INDEX(MATCH(-1^(B$2:B$25=F$2:G$2)*(C$2:C$25-(B$2:B$25=G$2)*(MAX(C$2:C$25)+1)),(B$2:B$25=G$2)*(MAX(C$2:C$25)+1)-C$2:C$25,),MATCH(,COUNTIF(F$2:G2,A$2:A$25),)))&""
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-10-31 11:25 | 显示全部楼层
本帖最后由 snowpeak 于 2011-11-2 15:29 编辑

F3:G3=IF(ROW(A1)>MAX($C$2:$C$25),"",
INDEX($A$1:$A$25,IF(OFFSET($B$1,MIN(IF(COUNTIF($F$2:G2,$A$2:$A$25),"",ROW($A$2:$A$25)))-1,)=$F$2:$G$2,
MIN(IF(COUNTIF($F$2:G2,$A$2:$A$25),"",ROW($A$2:$A$25))),
MMULT(TRANSPOSE(ROW($A$2:$A$25)),(MAX($C$2:$C$25)-OFFSET($C$1,MIN(IF(COUNTIF($F$2:G2,$A$2:$A$25),"",ROW($A$2:$A$25)))-1,)+1=$C$2:$C$25)*($B$2:$B$25=$F$2:$G$2))
)))--公式长度远远超限{:soso_e110:}

F3=IF(ROW(A1)>MAX($C$2:$C$25),"",OFFSET($A$1,IF(OFFSET($B$1,MIN(IF(COUNTIF($F$2:$G2,$A$2:$A$25),"",ROW($A$2:$A$25)))-1,)=F$2,
MIN(IF(COUNTIF($F$2:$G2,$A$2:$A$25),"",ROW($A$2:$A$25))),
MAX(ROW($A$2:$A$25)*(MAX($C$2:$C$25)-OFFSET($C$1,MIN(IF(COUNTIF($F$2:$G2,$A$2:$A$25),"",ROW($A$2:$A$25)))-1,)+1=$C$2:$C$25)*($B$2:$B$25=F$2))
)-1,)) --稍微短些


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-1 12:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 叫我史栋 于 2011-11-1 12:55 编辑

.....................错了错了斑竹,没按原来的顺序,请斑竹忽略

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-1 18:10 | 显示全部楼层
两格公式不一样行吗?我还从未参加过答题。

本帖子中包含更多资源

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

x

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-11-1 18:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
公式中有一个小错,重发帖。

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2024-11-21 18:48 , Processed in 0.050522 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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