ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2011-1-8 14:24 | 显示全部楼层
我用洪沟课程表增班后,查教师就不结了?=IF(ISERROR(INDEX(一&INDEX(z,$C5+1,),MIN(IF(ISNA(MATCH(一&INDEX(z,$C5+1,),$A$3:$A$25&$B$3:$B$25,)),100,COLUMN($A:$AS))))),"",INDEX(一&INDEX(z,$C5+1,),MIN(IF(ISNA(MATCH(一&INDEX(z,$C5+1,),$A$3:$A$25&$B$3:$B$25,)),100,COLUMN($A:$AS)))))。这公式中的(z)和(一)都改了,就是查不出老师的课?

[ 本帖最后由 zh84762538 于 2011-1-8 14:27 编辑 ]

中心小学课程表基础111222.rar

98.85 KB, 下载次数: 165

TA的精华主题

TA的得分主题

发表于 2011-1-8 14:29 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢楼主了,我学习很多天了,还未解决问题。

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-8 14:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 zh84762538 于 2011-1-8 14:24 发表
我用洪沟课程表增班后,查教师就不结了?=IF(ISERROR(INDEX(一&INDEX(z,$C5+1,),MIN(IF(ISNA(MATCH(一&INDEX(z,$C5+1,),$A$3:$A$25&$B$3:$B$25,)),100,COLUMN($A:$AS))))),"",INDEX(一&INDEX(z,$C5+1,),MIN(IF(ISNA( ...

使用484楼的附件进行改进。

TA的精华主题

TA的得分主题

发表于 2011-1-8 14:54 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-8 15:19 | 显示全部楼层
484楼附件中的名称定义
班1:
=LOOKUP(COLUMN(OFFSET(原,-2,,1,)),IF(OFFSET(原,-2,,1,)<>"",COLUMN(OFFSET(原,-2,,1,))),RIGHT(OFFSET(原,-2,,1,)))&OFFSET(原,-1,,1,)
要理解这个公式,请参考
285楼的多单元格数组公式:
=LOOKUP(ROW(2:17),IF(A2:A17<>"",ROW(2:17)),A2:A17)
解决合并单元格的还原问题。
其中的
OFFSET(原,-2,,1,)代替
$B$4:$DG$4,  相当于285楼公式中的A2:A17的转置。
COLUMN(OFFSET(原,-2,,1,))相当于285楼公式中的ROW(2:17)的转置。

多次用
OFFSET(原,-2,,1,)代替
区域 $B$4:$DG$4,
而不用具体的区域引用,是为了课程表的扩展性,尽量用原表定义了的名称。

[ 本帖最后由 lhx120824 于 2011-1-8 15:57 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-8 15:43 | 显示全部楼层
484楼附件中的名称定义
班1:
的具体解释,看下图:
此定义是关键,因为课程表的问题实际就是excel中的引用和查找的问题,课程表的查找条件不外乎就是搞清楚以下的:
星期几、哪个班、第几节课、那个老师、哪门课程
的查找问题。
因为实际工作中的表格的星期几是合并了单元格的,所以就需还原回不合并的单元格,为了公式中用的方便,就把星期和班级合并成一个名称来用,因而我定义成 “班1”
下图中的公式我都使用的多单元格数组公式。
也是函数
LOOKUP、OFFSET、RIGHT、COLUMN
的具体运用实例。

名称班1.gif

[ 本帖最后由 lhx120824 于 2011-1-8 16:10 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-1-8 15:48 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-8 16:23 | 显示全部楼层
484楼的附件:
洪沟中学课程表(2010版本)解决合堂问题20110106.rar
中用到的名称定义有以下几个:

表1=原始任课表!$B$2:$U$24
js =原始任课表!$W$2:$W$102
班1 =LOOKUP(COLUMN(OFFSET(原,-2,,1,)),IF(OFFSET(原,-2,,1,)<>"",COLUMN(OFFSET(原,-2,,1,))),RIGHT(OFFSET(原,-2,,1,)))&OFFSET(原,-1,,1,)
节次 =原始课程表!$A$6:$A$15
师 =SMALL(IF(表1=教师!$A$1,ROW(表1)*10^3+COLUMN(表1)-1),ROW(教师!$1:$30))
原 =原始课程表!$B$6:$DG$15

简单解释如下:
表1
是选定区域  $B$2:$U$24  后执行菜单栏中的 [插入]/[表格]/表格包含标题行。插入的表格增减行列后公式中所用的表1自动随着增减,就是有可扩展性。

原 =原始课程表!$B$6:$DG$15
是把由教导处或级部主任预先排好的课程表按附件中原始课程表的结构粘贴到一个表,也有扩展性。

节次 =原始课程表!$A$6:$A$15
是指两节晨读和6节正课:c1、c2、1、2、3、4、5、6、7、8,
进行定义的。原始课程表!$A$6:$A$15

js =原始任课表!$W$2:$W$102
是在  原始任课表 中把所有的任课教师删除重复值后放到区域$W$2:$W$102 中进行定义,在  教师  表中的A1单元格中进行数据有效性的设置,查找教师名单用的,避免输入教师名。

师 和 班1
已在前面的楼层中加以解释了。

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

TA的精华主题

TA的得分主题

发表于 2011-1-8 20:38 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-1-8 21:38 | 显示全部楼层
原帖由 lhx120824 于 2011-1-8 09:16 发表

让你爬这么高的楼也挺累的吧?有好多的楼层中融入了你提供的公式,学习了你的不少的方法,谢谢你的帮助。

不累不累,呵呵,很钦佩你的耐心。
我没有这毅力,只能见问题就事论事,所以见的比较少,成长的比较慢,不善于积累……以后就看你这个帖子吧,有好帖子麻烦你就加到里面来,造福大家
学习楼主的精神,谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 12:30 , Processed in 0.037115 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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