ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] OFFSET 函数实例(入门级)敬请方家指正

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-4-27 16:27 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
内容详见附件: OFFSET实例1(排考号).zip (111.93 KB, 下载次数: 185)

期待高手指点的问题:

⒈ 《考室编成》⑺⑻这两张表 在填入公式的时候 仍然费了太多手工  (每个考室的编排小有差异,更主要的是在下还不太会用Excel的查找引用函数),期待高手给个更高效的公式 可以从第1个考室 直接刷到最后的…… 而不是像在下这样弱智地去修改每个考室的第1个公式,一个考室一个考室的刷公式……

⒉ 如要求把《考室编排》制作成‘S型排列’的样式,第一个公式要怎么写 才可以从头刷到尾 不必逐一修正?敬请诸位方家勿吝赐教~~

⒊ 空成绩表里面的公式(以《成绩单⑺》为例)=IF(ISERROR(OFFSET('7年级'!$A$1,ROW()-1+51*(INT(COLUMN()/3)),MOD(COLUMN(),3)-1,,)),"",OFFSET('7年级'!$A$1,ROW()-1+51*(INT(COLUMN()/3)),MOD(COLUMN(),3)-1,,)),那个‘51’是笔者依据‘考生人数/成绩单列数’用手工拟合算出来填入公式的;笔者一直在想,能否利用Excel 本身提供的某个‘数值拟合’函数来计算适合的值(就是空成绩单最适合的行数)……(不知道怎么表述清楚,希望同志们能明白在下想说的意思)

补充说明:笔者上班用的是 Excel 2007,但为适应仍然使用 Excel2003 的同仁,上传小作之前已将2003会报错的函数修正了过来,如仍有出错提示,还望海涵~~

TA的精华主题

TA的得分主题

发表于 2011-4-27 18:14 | 显示全部楼层
原帖由 valleytale 于 2011-4-27 16:27 发表
内容详见附件:913645

期待高手指点的问题:

⒈ 《考室编成》⑺⑻这两张表 在填入公式的时候 仍然费了太多手工  (每个考室的编排小有差异,更主要的是在下还不太会用Excel的查找引用函数),期待高手给个更 ...


你的
‘考生人数/成绩单列数’
中的  成绩单列数 怎么确定?

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-4-27 21:44 | 显示全部楼层

回复 2楼 lhx120824 的帖子

原帖由 lhx120824 于 2011-4-27 18:14 发表
你的
‘考生人数/成绩单列数’
中的  成绩单列数 怎么确定?


为了把空成绩单打印在1张(横向)A4或2张(纵向并列)A4纸上,大体上要向这个比例靠拢:

(行数×行高)/∑(列数×列宽)=210/297
(A4纸宽高比)


[ 本帖最后由 valleytale 于 2011-4-27 21:45 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-4-28 15:27 | 显示全部楼层

LZ第一次修订版

昨晚笔者就2楼大大提出的问题又思索了下,觉得之前是自己把那个问题(算出适合的空成绩单列数)理解复杂了……
其实最简单的办法就是基于各年级考生人数和空成绩单有效列数,写个公式来计算那个‘行数’就行了,然后可以根据打印预览的效果来 调整列数和列宽,要找到一个合适的行数并不难……
基于上述思路,重新设计了〈成绩单⑺〉〈成绩单⑻〉〈成绩单⑼〉这3张工作表里面的公式,看看是不是更灵活了: OFFSET实例1(排考号).zip (105.27 KB, 下载次数: 129)
其实就是把之前的公式里面:
(OFFSET('7年级'!$A$1,ROW()-1+51*(INT(COLUMN()/3)),MOD(COLUMN(),3)-1,,)
这部分修改成:
(OFFSET('7年级'!$A$1,ROW()-1+ROUNDUP(COUNT('7年级'!$A:$A)/(COUNTA($1:$1)/3),0)*(INT(COLUMN()/3)),MOD(COLUMN(),3)-1,,)

基于相应年级考生总人数(COUNT('7年级'!$A:$A))和空成绩单有效列数((COUNTA($1:$1)/3))用 ROUNDUP(…,0) 这个函数来计算出空成绩单适合的行数(这个‘行数’值用于给OFFSET函数提供参数‘Rows’)

[ 本帖最后由 valleytale 于 2011-4-28 15:36 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 05:40 , Processed in 0.035987 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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