ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[分享] 教育应用贴(分班、统计、课表等)1142楼添加运动会成绩统计表20121215

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2010-12-29 15:05 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
非常非常非常实用的帖子。
有了实例,还能学方法

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-29 17:07 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

排座号扩成4列

为了便于理解,先加入辅助列,以后再利用定义进行封装
右上2行辅助行的的公式是
=CHOOSE(INT((COLUMN(A:X)-1)/4)+1,$B$1,$C$1,$D$1,$E$1,$F$1,$G$1)

数组公式是:
Q4:Q16=IF(ROW($1:$13)>Q$1,"",IF(MOD(INT((COLUMN(A1)-1)/4),2)=0,ROW(INDIRECT("1:"&Q$1))+M$2,Q$2+1-ROW(INDIRECT("1:"&Q$1))))
然后右拖至AN16

昨天的文件发布有误,现已更正。
排考场20101230.rar (19.45 KB, 下载次数: 320)
见下图:

排座号4列.gif

[ 本帖最后由 lhx120824 于 2010-12-30 11:10 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-29 20:04 | 显示全部楼层
查找名单问题:
第三场的考号名单。
声明:为便于讲解和大家的理解,先借用辅助列。
3场考号名单.gif

排考场20101230.rar (19.45 KB, 下载次数: 211)

[ 本帖最后由 lhx120824 于 2010-12-30 11:09 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-12-29 20:09 | 显示全部楼层
查找名单公式:
c9=IFERROR(CHOOSE(MOD(COLUMN(A1)-1,4)+1,VLOOKUP(一个公式解决!Q4,高二文考生!$A:$C,2),VLOOKUP(一个公式解决!Q4,高二文考生!$A:$C,3),一个公式解决!Q4),"")
然后右拖下拉。

运用内存数组的和定义名称封装的方法,待方法成熟后再解决。责任驱使,不敢懈怠。我现在也是现学现卖,我的解决问题的思维过程就是这样的,只是觉得展现思维过程比直接呈现结果更有价值,所以让大家久等了。盼大家参与解决问题的过程,齐心协力共同出谋划策,成果分享。最终形成一个多单元格数组公式(不借助辅助列)。

[ 本帖最后由 lhx120824 于 2010-12-29 20:51 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-1 18:39 | 显示全部楼层
原帖由 fyj7601 于 2010-12-21 23:04 发表
如何在考试中给学生安排考场座位号
以上是我下载下来的考场座位排号,但对我们学校不适用。我们学校共有三个年级,近三千学生,每个年级单独排考场。在考试中,要按上表格式排考场,序号从1开始到366,但各考场人数不等 ...


对于各考场人数不等的情况,已解决,看是你需要的吧?
既然是各个考场的人数不等,排数不同,每排的人数也不一样,那就需要建立一个考场安排表。
考场安排情况表.gif

为了使用方便,进行命名:
考场:
=座位安排表!$AB$3:$AG$10

还要对考场的每排进行累计:
并定义名称
累计
=TRANSPOSE(MMULT(--(ROW(INDIRECT("1:"&COLUMNS(考场)))>TRANSPOSE(ROW(INDIRECT("1:"&COLUMNS(考场))))),TRANSPOSE(考场)))+MMULT(--(ROW(考场)>TRANSPOSE(ROW(考场))),MMULT(考场,TRANSPOSE(COLUMN(考场)^0)))

累计的效果图如下:


[ 本帖最后由 lhx120824 于 2011-1-1 18:44 编辑 ]
累计.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-1 18:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
再定义以下三个名称分别是:(相对于c列开始使用)
正号
=IF(MOD(COLUMN()-3,4)+1=4,"",INDEX(累计,座位安排表!$E$3,(COLUMN()+1)/4)+ROW(INDIRECT("1:"&INDEX(考场,座位安排表!$E$3,ROUNDUP((COLUMN()-1)/4,0)))))

逆号
=IF(MOD(COLUMN()-3,4)+1=4,"",INDEX(累计,座位安排表!$Z$3,(COLUMN()+5)/4)+1-ROW(INDIRECT("1:"&INDEX(考场,座位安排表!$E$3,ROUNDUP((COLUMN()-1)/4,0)))))

座位号
=IF(MOD(COLUMN()-2,8)<4,正号,逆号)

最后选定C9:Z22,在编辑栏中输入多单元格数组公式:
=IFERROR(CHOOSE(MOD(COLUMN()-3,4)+1,VLOOKUP(座位号,高二文考生!A:C,2,0),VLOOKUP(座位号,高二文考生!A:C,3,0),座位号),"")
按数组的三键结束。

[ 本帖最后由 lhx120824 于 2011-1-1 18:52 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-1 18:55 | 显示全部楼层
附件及效果图:
排考场20110101完成.rar (15.5 KB, 下载次数: 247)

正号的效果图:
正号.gif

逆号的效果图:
=逆号.gif

座位号的效果图:
座位号.gif

[ 本帖最后由 lhx120824 于 2011-1-1 20:07 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-1 18:56 | 显示全部楼层
考场名单的使用:
使用.gif

若想同时显示多个考场,可将整个区域(前22行)进行复制,然后再进行选择考场。
排考场20110101完成.rar (15.5 KB, 下载次数: 284)

所用公式只引用单元格E3进行考场的选择,公式中包括名称也只引用考场所定义的
考场安排情况表(此表需要人工设定输入考场和每排的人数,空的用0填充,因累计函数MMULT需要数值)。

主要的解决难点在于每排的起止座位号的可变上,以及把每个考生的信息显示成1行4列上。公式不用复制的拖拉,整个区域只用一个多单元格数组公式。
C2:z22=IFERROR(CHOOSE(MOD(COLUMN()-3,4)+1,VLOOKUP(座位号,高二文考生!A:C,2,0),VLOOKUP(座位号,高二文考生!A:C,3,0),座位号),"")


感觉还可以简化方法。继续研究。


简化修改后的方法和附件在639楼,请关注。

[ 本帖最后由 lhx120824 于 2011-1-20 22:28 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-1-1 21:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
进来学习学习。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-2 09:25 | 显示全部楼层
怎样的运算能得到数组{11;12;13}与数组{21,31;22,32;23,33}合并成{11,21,31;12,22,32;13,23,33}
先临时总结如下:(继续等待其他的方法)
原帖子参见:
[url=http://club.excelhome.net/thread-668230-1-1.html]http://club.excelhome.net/thread-668230-1-1.html
[/url]


1、wcymiss 提供的先分解数组成单列再用CHOOSE({})函数并联的方法:
=CHOOSE({1,2,3},{11;12;13},INDEX({21,31;22,32;23,33},0,1),INDEX({21,31;22,32;23,33},0,2))

2、shaowu459 提供的分解讲解很细,让人一看就懂:
两个数组都扩展然后数组相加的方法:
=MMULT({11;12;13},{1,0,0})+MMULT({21,31;22,32;23,33},{0,1,0;0,0,1})

3、也可只扩展第二个数组再用if函数并联的方法:
=IF({1,0,0},{11;12;13},MMULT({21,31;22,32;23,33},{0,1,0;0,0,1}))

4、如果第二个数组只有1列,就可以用李兴德提供的方法:
数组公式:
=IF({1,1,0},A1:B3,C1:C3)

5、如果数组都是有规律的纯数值的话,也可用李兴德提供的自然数的运算方法直接得出:
=(MOD(ROW()-1,3)+1)*10+ROUNDUP((ROW()-0)/3,)

谢谢提供了很好的解题思路。值得细细研究研究。
shaowu459提供的附件中
数组扩充截图 数组扩充.gif

[ 本帖最后由 lhx120824 于 2011-1-2 09:34 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-6-2 04:16 , Processed in 0.047287 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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