ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[Excel 函数与公式] 【第133期】人员录用(开帖)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-10-29 11:24 | 显示全部楼层 |阅读模式
本帖最后由 delete_007 于 2021-11-30 10:14 编辑



来源: 【人员录用题】(第133期采用)

本帖子中包含更多资源

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

x

评分

22

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-11-30 11:16 | 显示全部楼层
本帖最后由 客都梅州 于 2021-12-2 19:43 编辑

因此次竞赛007版主有参赛,故申请云南大理版主来根据下图评分表对各位选手进行评分。特此申请。



总结:
       此题思路切入准确应该算是较为容易的,如果从一个整体去判断,会较为繁琐,故普遍采用自上而下引用法来解答。
可以分三步走:
1.判断准考证号应该为0:COUNTIF(O$1:O1,E$2:E75)=0
2.判断人数应该小于总人数的一半;
3.判断人数应该小于总人数。
2.3总和就是SUMIF(H$2:H4,D$2:D75,I$2:I4)/{2,1}>COUNTIFS(M$1:M1,IF({1,0},C$2:C75,"*"),N$1:N1,D$2:D75)
其中:较有技巧性的做法为007版主的大于小于号法:
COUNTIFS(M$1:M1,{"><",""}&C$2:C75,N$1:N1,D$2:D75)
但是cinlo老师把OFFSET函数加入到COUNTIFS中,把三个部分整合到一起,使得更为简洁
COUNTIFS(N$1:N1,D$2:D75,OFFSET(M$1:M1,,{0,1,2}),C$2:E75)
接下来是普遍采用FREQUENCY判断最大值所处的行号
与此同时,丢丢表格等老师利用
IF(J1:O1=0,A2,A$2:F77)及FREQUENCY函数返回的值比INDEX范围多一行产生的错误,较为巧妙的
解决了第一列的序号问题以及多余部分返回空值的问题。
最后,综合各要点给上最佳答案,供大家参考。
  1. =IFERROR(INDEX(IF(J1:O1=0,A2,A$2:F75),MATCH(1,FREQUENCY(2,MMULT(N(COUNTIFS(N$1:N1,D$2:D75,OFFSET(M$1:M1,,{0,1,2}),C$2:E75)<SUMIF(H$2:H4,D$2:D75,I$2)/{2,1,99}),{1;1;1})-F$2:F75%),)),"")
复制代码
再次,衷心的感谢各位朋友的捧场,谢谢您们为此题付出的精力,为广大坛友献上了精彩纷呈的答案,论坛有你们更精彩。




本帖子中包含更多资源

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

x

评分

9

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-10-29 15:24 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
先占个楼。。。
  1. =IF($A2>SUM($I$2:$I$4),"",IF(A2=$A2,A2,LOOKUP(,0/FREQUENCY(-1,(MMULT((COUNTIF($O$1:$O1,$E$2:$E75)=0)*(COUNTIFS($N$1:$N1,$D$2:$D75,$M$1:$M1,IF({1,0},"*",$C$2:$C75))*{1,2}<SUMIF($H$2:$H4,$D$2:$D75,$I$2)),{1;1})=2)*-$F$2:$F75%),A$2:A3)))
复制代码


评分

11

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-10-29 17:58 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2021-10-29 18:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

TA的精华主题

TA的得分主题

发表于 2021-10-30 02:07 | 显示全部楼层
本帖最后由 E风卍行H 于 2021-10-31 08:15 编辑

凑个热闹,只符合部门人数,不符合男女人数(275字符)
  1. =IFERROR(INDEX(A:A,RIGHT(TEXT(LARGE(LARGE(IF($D$2:$D$75=TRANSPOSE($H$2:$H$4),$F$2:$F$75+{3,2,1}*100,{3,2,1}*100)+ROW($2:$75)*{1,1,1}*1%%,SMALL(IF(ROW($1:$74)+{0,1,2}*74<={0,1,2}*74+TRANSPOSE($I$2:$I$4),ROW($1:$74)+{0,1,2}*74),ROW(INDIRECT("1:"&SUM($I$2:$I$4))))),ROW($A1)),"0.0000"),2)),"")
复制代码

两个通宵,737个字符,但总算是出结果了
  1. =IFERROR(IF(L$1="序号",IF(ROW($A2)<=SUM($I$2:$I$4),ROW($A2),""),OFFSET($A$1,100-1-RIGHT(TEXT(LARGE(--TEXT(MOD(LARGE(LARGE(IFERROR(MOD(LARGE(TEXT(LARGE(IFERROR(IF($D$2:$D$75=TRANSPOSE($H$2:$H$4),$F$2:$F$75,NA())+IF($C$2:$C$75="男",{63,42,21},{53,32,11})*100+0.01-ROW($2:$75)*{1,1,1}*1%%,0),ROW($1:$74))-{6,5,4,3,2,1}*1000,"[>1000]!0;!0;0.0000")+{6,5,4,3,2,1}*1000,IF(ROW($1:$74)+{0,1,2,3,4,5}*74<=SMALL(INT((TRANSPOSE($I$2:$I$4)+{1;1})/2)+74*{0,2,4;1,3,5},COLUMN($A:$F)),ROW($1:$74)+{0,1,2,3,4,5}*74)),1000),{3,3,2,2,1,1}*100),ROW($1:$148)+{0,1,2}*148),SMALL(IF(ROW($1:$148)+{0,1,2}*148<={0,1,2}*148+TRANSPOSE($I$2:$I$4),ROW($1:$148)+{0,1,2}*148),ROW(INDIRECT("1:"&SUM($I$2:$I$4))))),100),"0.0000"),ROW($A2)),"0.0000"),2),COLUMN(B$1)-1)),"")
复制代码


评分

9

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-10-30 14:09 | 显示全部楼层
本帖最后由 小|树 于 2021-10-31 20:46 编辑
  1. =IF(A2>SUM(I$2:I$4),"",IF(J1:O1>0,OFFSET(A$1:F$1,RIGHT(MAX((COUNTIF(N$1:N1,D$2:D75)<SUMIF(H$1:H4,D$2:D75,I$1))*(1-COUNTIF(O$1:O1,E$2:E75))*(COUNTIFS(N$1:N1,D$2:D75,M$1:M1,C$2:C75)<SUMIF(H$1:H4,D$2:D75,I$1)/2)*F$2:F75/1%%-A$2:A75*99),2),),A2))
复制代码



补充内容 (2021-11-12 16:16):
好不容易砍掉几个字符,发现这个楼层无法编辑了。“补充”也只能补充200字符以内的答案,故申请此楼作废,答案转至第18层。&#128557;

点评

因无法补充超过200字符的内容,故此楼公式同意作废,不扣分。  发表于 2021-12-2 16:31

评分

9

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-10-31 00:12 | 显示全部楼层
本帖最后由 cinlo 于 2021-11-10 22:08 编辑

K2-P2区域数组公式:
不偷鸡219字符:
  1. =IF(I$2+I$3+I$4<A2,"",IF(A$1:F$1="序号",A2,OFFSET(A$1,MOD(MIN(IF(MMULT(COUNTIF(O$1:O1,E$2:E75)+(COUNTIFS(N$1:N1,D$2:D75,M$1:M1,{"","><"}&C$2:C75)>=SUMIF(H$2:H4,D$2:D75,I$2)/{2,1}),{1;1}),,A$2:A75-F$2:F75/1%%)),100),,,6)))
复制代码
偷点鸡214字符:还是K2-P2区域数组
  1. =IF(I$2+I$3+I$4<A2,"",IF(J1:O1=0,A2,OFFSET(A$1,MOD(MIN(IF(MMULT(COUNTIF(O$1:O1,E$2:E75)+(COUNTIFS(N$1:N1,D$2:D75,M$1:M1,{"","><"}&C$2:C75)>=SUMIF(H$2:H4,D$2:D75,I$2)/{2,1}),{1;1}),,A$2:A75-F$2:F75/1%%)),100),,,6)))
复制代码
终于又减了13个,201字符:还是K2-P2区域数组:
  1. IF(I$2+I$3+I$4<A2,"",IF(J1:O1=0,A2,OFFSET(A$1,MOD(MIN(IF(MMULT(N(COUNTIFS(N$1:N1,D$2:D75,OFFSET(M$1:M1,,{0,1,2}),C$2:E75)>=SUMIF(H$2:H4,D$2:D75,I$2)/{2,1,99}),A2:A4),,A$2:A75-F$2:F75/1%%)),100),,,6)))
复制代码
海鲜函数来一个,还是201字符:
  1. =IF(I$2+I$3+I$4<A2,"",IF(J1:O1=0,A2,OFFSET(A$1,MATCH(1,FREQUENCY(-1,(MMULT(N(COUNTIFS(N$1:N1,D$2:D75,OFFSET(M$1:M1,,{0,1,2}),C$2:E75)<SUMIF(H$2:H4,D$2:D75,I$2)/{2,1,99}),{1;1;1})=3)*-F$2:F75%),),,,6)))
复制代码
非常艰难地减1个,200字符:
  1. IF(I$2+I$3+I$4<A2,"",INDEX(IF(J1:O1=0,A2,A$2:F75),MOD(MIN(IF(MMULT(N(COUNTIFS(N$1:N1,D$2:D75,OFFSET(M$1:M1,,{0,1,2}),C$2:E75)>=SUMIF(H$2:H4,D$2:D75,I$2)/{2,1,99}),A2:A4),,A$2:A75-F$2:F75/1%%)),100)))
复制代码
终于200以内了,194字符:
  1. =IF(I$2+I$3+I$4<A2,"",INDEX(IF(J1:O1=0,A2,A$2:F75),MATCH(1,FREQUENCY(2,MMULT(N(COUNTIFS(N$1:N1,D$2:D75,OFFSET(M$1:M1,,{0,1,2}),C$2:E75)<SUMIF(H$2:H4,D$2:D75,I$2)/{2,1,99}),{1;1;1})-F$2:F75%),)))
复制代码
用IFERROR,184字符:
  1. =IFERROR(INDEX(IF(J1:O1=0,A2,A$2:F75),MATCH(1,FREQUENCY(2,MMULT(N(COUNTIFS(N$1:N1,D$2:D75,OFFSET(M$1:M1,,{0,1,2}),C$2:E75)<SUMIF(H$2:H4,D$2:D75,I$2)/{2,1,99}),{1;1;1})-F$2:F75%),)),"")
复制代码




评分

12

查看全部评分

TA的精华主题

TA的得分主题

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

K2:P2区域数组,下拉
  1. =IF(A2>I$2+I$3+I$4,"",IF(J1:O1=0,A2,OFFSET(A$1:F1,MATCH(1,FREQUENCY(-9,-MMULT((COUNTIF(O$1:O1,E$2:E75)=0)*(SUMIF(H$2:H4,D$2:D75,I$2:I4)/{2,1}>COUNTIFS(M$1:M1,IF({1,0},C$2:C75,"*"),N$1:N1,D$2:D75))*F$2:F75%,{1;1})),),)))
复制代码

评分

9

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-10-31 11:47 | 显示全部楼层
本帖最后由 我走我流 于 2021-11-12 21:00 编辑

先 占 个 楼。。字数太  多
=IF(SUM($I$2:$I$4)<$A2,"",IF(A$2=1,$A2,LOOKUP(,0/FREQUENCY(-1,-$F$2:$F$75%*ISERR(MATCH($D$2:$D$75&"*"&$C$2:$C$75&"*",$H$2:$H$4&LOOKUP(MMULT(N(COUNTIFS($N$1:$N1,$H$2:$H$4,$M1:$M$1,{"*","男","女"})<$I$2:$I$4/{1,2,2}),{4;2;1}),{5,"女";6,"男";7,"男女"}),)/COUNTIF($O$1:O1,$E$2:$E$75))),A$2:A$3)))

评分

10

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-10-31 13:35 | 显示全部楼层
本帖最后由 看见星光 于 2021-11-10 10:46 编辑
  1. =IF(A2>SUM(I$2:I$4),"",IF(K$1:P$1=K$1,A2,OFFSET(A$1:F$1,MATCH(1,FREQUENCY(5,MMULT((COUNTIFS(N$1:N1,D$2:D75,M$1:M1,IF({1,0},C$2:C75,"*"))*{2,1}<SUMIF(H$2:H4,D$2:D75,I$2))-COUNTIF(O$1:O1,E$2:E75),{3;3})-F$2:F75%),),)))
复制代码

评分

13

查看全部评分

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

本版积分规则

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

GMT+8, 2024-7-13 20:01 , Processed in 0.047580 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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