ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-10 21:10 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
体会单列数组
=row(1:10)
体会单行数组
=COLUMN(A:J)

体会单列+单行数组
=ROW(1:10)+COLUMN(A:J)


数组7.gif

静止图的效果:
数组8.gif

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

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-10 21:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
前面说过,
行数组
row()  在选定区域内所有的列是填满的,行是限定的。

列数组
=COLUMN()  在选定区域内所有的行是填满的,列是限定的。
因此在选定的区域内
=row()+COLUMN()   的行由row()决定,列由COLUMN()  决定,区域内单元格的值是对应的row()的行与COLUMN()的列的值相加之和。
区域超出的部分显示错误,区域不足的部分不显示。
再发一次图,细细体会。

[ 本帖最后由 lhx120824 于 2011-1-10 21:42 编辑 ]
数组8.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-10 21:58 | 显示全部楼层
看列数组适当调整后的情况:
=COLUMN(A:L)  返回  {1,2,3,4,5,6,7,8,9,10,11,12}  粉红色区域。
=COLUMN(A:L)*10 返回 {10,20,30,40,50,60,70,80,90,100,110,120}  绿色区域。
相当于 {1,2,3,4,5,6,7,8,9,10,11,12}*10 遵循分配律法则 得到 {10,20,30,40,50,60,70,80,90,100,110,120}  
=COLUMN(A:L)*10-10 返回 {0,10,20,30,40,50,60,70,80,90,100,110}  红色区域。
相当于{10,20,30,40,50,60,70,80,90,100,110,120}-10,数组中的每个数都 -10.
因此=ROW(1:10)+COLUMN(A:L)*10-10  就得到图表中的黄色区域部分。



数组9.gif

黄色部分就是我们排座次的雏形。

同样要注意:我说的整个列、整个行、整个区域,在你输入公的时候,都是先选定一个列区域、或一个行区域、或一个二维区域后在编辑栏中输入公式,然后按数组的三键结束。不能只在一个单元格中输入公式后再拖拉。
当然在一个单元格中输入公式后也可以再扩展成多单元格数组公式。下楼看我的演示。

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

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-10 22:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
先激活左上角的第一个单元格,输入公式
=ROW(1:10)+COLUMN(A:L)*10-10
按数组的三键,然后再从第一个单元格开始选定需要的区域,激活编辑栏后,按数组的三键结束。这样也行。不过操作步骤多了些。
数组10.gif

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

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-11 06:24 | 显示全部楼层
体会取整函数的作用:  INT(number)   只有一个参数。
我想实现这样的目的:每8行为一组,用公式实现下图中第四列的效果,中间过程就需要用到取整函数。思维过程是:(注:公式都是多单元格数组公式)
A列:先取自然数列    =row(1:32)
B列:分别除以 8    =ROW(1:32)/8
C列:把B列取整   =INT(ROW(1:32)/8)
D列:调整,A列数从0开始,C列数从1开始  =INT((ROW(1:32)-1)/8)+1
过程如下图:
(INT(number)INT 函数语法具有下列参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。):

Number    必需。需要进行向下舍入取整的实数。)

[ 本帖最后由 lhx120824 于 2011-1-11 07:01 编辑 ]
数组11.gif

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-11 06:50 | 显示全部楼层
体会取余函数  MOD(number, divisor)   的作用

我想实现这样的目的:每8行为一组,用公式实现下图中第三列的效果,每组从1到8进行编号,
中间过程就需要用到取余函数。思维过程是:(注:公式都是多单元格数组公式)
A列:先取自然数列    =row(1:32)
B列:分别除以 8 取余数   =MOD(ROW(1:32),8)
C列:调整,A列数从0开始,C列数从0变成8  =MOD(ROW(1:32)-1,8)+1
过程如下图:



数组12.gif

MOD(number, divisor)MOD 函数语法具有下列参数 (参数:为操作、事件、方法、属性、函数或过程提供信息的值。):

Number    必需。被除数。
Divisor    必需。除数。
如果 divisor 为零,函数 MOD 返回错误值 #DIV/0!。
函数 MOD 可以借用函数 INT 来表示:
MOD(n, d) = n - d*INT(n/d)

[ 本帖最后由 lhx120824 于 2011-1-11 06:59 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-1-11 10:55 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-11 11:12 | 显示全部楼层
体会行函数 row(  )  的应用:
(同样注意每一列都是多单元格数组公式)
(解释稍后,先细细体会)
由此你可以进行其他的变换,得到不同的数组(包括隔行的),试试看。

排位6.gif

[ 本帖最后由 lhx120824 于 2011-1-11 11:37 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-11 11:39 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
551楼的图中所用的函数包括:
ROW(1:32)
MOD(ROW(1:32),2)
INT(ROW(1:32)/2)
IF( , ,"")
共四个函数。
各自的作用是:

=ROW(1:32)  取自然数1至32组成1列32行的一维数组。具体返回
{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32}

=MOD(ROW(1:32),2)   是求上一数组除以2的余数。具体返回
{1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0}

=INT(ROW(1:32)/2)  对数组1至32都除以2后再取整数部分,具体返回
{0;1;1;2;2;3;3;4;4;5;5;6;6;7;7;8;8;9;9;10;10;11;11;12;12;13;13;14;14;15;15;16}

=IF(MOD(ROW(1:32),2),ROW(1:32),"")相当于
=if({1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0;1;0},{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20;21;22;23;24;25;26;27;28;29;30;31;32},"")
取对应于1的值,其余的0值时取第三参数 "" ,最后返回:
{1;"";3;"";5;"";7;"";9;"";11;"";13;"";15;"";17;"";19;"";21;"";23;"";25;"";27;"";29;"";31;""}

对于if({1,0},,)函数请参看论坛中的相应帖子。

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

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-1-11 13:00 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖只是用实例来体会函数的作用和公式的用途,具体的某个函数的机理和特点我自己也处在学习阶段,在此就不在班门弄斧,论坛中很多专门的帖子进行讲述,需要了解时请自己搜索来解决。

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

本版积分规则

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

GMT+8, 2024-12-26 21:05 , Processed in 0.038767 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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