ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[函数用法讨论系列18] ROWS($A$1:A1)与ROW(1:1)用法探讨!

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2007-5-26 17:10 | 显示全部楼层

请教高人一个问题:row($a$1:$a$14)*2具体返回什么值啊?我用这个公司在excel中实践,什么也看不到?我还是弄不明白诸如row(1:1)或row(a:a)有什么作用,一般用在什么时候或什么地方?望那个高人做一个全面总结,不胜感激!

TA的精华主题

TA的得分主题

发表于 2007-5-26 17:29 | 显示全部楼层

欢迎田间耕夫!

Row($A$1:$A$14)*2={2;4;……;26;28},比如在A1输入=Row($A$1:$A$14)*2,然后用鼠标在编辑栏“抹黑”公式这部分,按下F9可查看。

ROW(1:1)返回第1行的行号,得到{1}——单元素数组

Row(a:a)返回A列的所有行号,即{1;2;……;65536},基本没有这个用法,只有用COLUMN(A:A)。

一般的Row(1:1)由于是相对引用,在公式下拖复制时变成Row(2:2)、Row(3:3)分别返回{2}、{3}等,用以结合SMALL函数将数组从小到大输出。

这些都是基础知识,可参阅:

TA的精华主题

TA的得分主题

发表于 2007-7-20 21:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2007-7-22 20:15 | 显示全部楼层
QUOTE:
以下是引用czzqb在2006-2-23 9:36:26的发言:

说说关于ROW(1:1)的看法,与楼主提的ROWS()无关

ROW(1:1)的最简单的用法如下:

A1:A10里存放了10个数字,要在B11:B20里把它从小到大排列出来,有以下几个写法(自定义名称DATA1=A1:A10):

1, SMALL(DATA1,ROW(A1)),下拉

2, SMALL(DATA1,ROW(1:1)),下拉

3, SMALL(DATA1,ROW(INDIRECT("A"&ROW()-19))),下拉

4, 多单元格数组公式:SMALL(DATA1,ROW(INDIRECT("1:10"))

5, 多单元格数组公式:SMALL(DATA1,ROW(DATA1))

哪个好用?

公式1和2,3的计算速度应该比4和5要慢,因为它有10个公式,要计算10次,而后两个公式只计算一次,就填入10个单元格;另外,更致命的是,一旦删除数据区的某一行,将造成显示结果错误。

公式4与5,删除数据区不会造成错误,速度块。

而公式4与5相比:公式4使用了易失函数,会引发大量的重算,速度也受到很大影响,而公式5则没有这个问题。

结论:多单元格数组公式:SMALL(DATA1,ROW(DATA1))是最好的。



请教一下大家第三个公式SMALL(DATA1,ROW(INDIRECT("A"&ROW()-19))),是不是有点错误。我输入以后总是提示错误。是不是最后的19应该改为9,大家帮忙看看好吗?

另外,更致命的是,一旦删除数据区的某一行,将造成显示结果错误。

公式4与5,删除数据区不会造成错误,速度块。

还有,一直不理解上面这两句话?不知道有没有高手指点一下?

[此贴子已经被作者于2007-7-22 20:17:32编辑过]

TA的精华主题

TA的得分主题

发表于 2007-8-8 16:25 | 显示全部楼层

我是初学者,平常使用时多用ROW()-N

TA的精华主题

TA的得分主题

发表于 2007-8-8 16:53 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
row(a1:a10)与{1;2;3;4;5;6;7;8;9;10}等价吧?也等价于ROW(1:10)吧?那天看帖子好像记得陈军大师说过ROW(4:4)实际上就是返回{4}的,那么照此理解应该没什么不同吧?以上是我的浅见可能是不对的。

TA的精华主题

TA的得分主题

发表于 2007-8-28 03:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用hbhfgh4310在2006-1-16 14:15:47的发言:
       以往大家经常用ROW(1:1)解决生成自然数的问题,我偶尔看到用ROWS($A$1:A1)替代ROW(1:1),我自己理解两者的区别有以下几条:
1、ROWS($A$1:A1)返回的是单纯的数字,而ROW(1:1)返回的是数组中的数字.
2、在使用过程中,如果遇到删除涉及到ROWS($A$1:A1)引用区域的行、列时公式会出错,而ROW(1:1)则不会出错。
3、从运算速度上分析,ROWS($A$1:A1)的运算速度应该比ROW(1:1)快,当然这只是推测,我并没有实际测试过。
其他区别还望大家各抒己见!

我照您的思路做了一下,结果如下:

A2=asdf       ROWS($A$2:A2)=1

A3=1342      ROWS($A$2:A3)=2       ROWS($A$3:A3)=1

A4=1            ROWS($A$2:A4)=3       ROWS($A$4:A4)=1

                    ROW(1:1)=1                  ROW(2:2)=2                  ROW(3:3)=3

                    ROW(1:2)=1                  ROW(1:3)=1                  ROW(1:4)=1

                    ROW(2:4)=2                  ROW(3:4)=3                  ROW(4:4)=4

 

让我[em06]请帮忙解释.

[此贴子已经被作者于2007-8-28 4:25:41编辑过]

TA的精华主题

TA的得分主题

发表于 2007-9-11 16:12 | 显示全部楼层

请问文字如何转换成数字汇总

如20名学生等级评定中(A1:A20),分姓名对应评为"优"、“良”、“及格”、“不及格”四个等级,要统计打“优”的有几名学生(变为数字),“良”几名,“及格”几名,“不及格”几名。谢谢指点。

[此贴子已经被作者于2007-9-11 16:21:19编辑过]

TA的精华主题

TA的得分主题

发表于 2007-11-21 15:04 | 显示全部楼层
QUOTE:
以下是引用gdliyy在2006-1-17 0:09:12的发言:

我的理解是:

1、Rows()其结果返回行数--单值,而Row()则返回行号--单值或多值,所以Rows()返回是单值常量,而Row()则返回常量数组。
2、并不是Row(1:1)不出错,只是你的例子看似比较特殊Rows(A1:A1),仅仅引用了一个单元格,当你删除1整行,Row(1:1)还是报错的。这也从侧面反映了--在Excel中,当参数引用范围全部丢失时,系统会自动识别为引用无效(#REF!)的。
3、对于运算速度,我觉得应该是Rows()快一些,这可能与Rows()本身的函数性质有关吧:)

同意.

TA的精华主题

TA的得分主题

发表于 2007-11-21 15:12 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
QUOTE:
以下是引用_s_bri在2007-8-28 3:55:45的发言:

我照您的思路做了一下,结果如下:

 ROWS($A$2:A2)=1——$A$2:A2共1行

 ROWS($A$2:A3)=2——$A$2:A3共2行       ROWS($A$3:A3)=1——$A$3:A3共1行

 ROWS($A$2:A4)=3——$A$2:A4共3行       ROWS($A$4:A4)=1——$A$4:A4共1行

                    ROW(1:1)=1——按F9得到{1}                  ROW(2:2)=2 ——按F9得到{2}                 ROW(3:3)=3——按F9得到{3}

                    ROW(1:2)=1——按F9得到{1;2},一个单元格只能显示一个元素,因此显示1,下同。                  ROW(1:3)=1 ——按F9得到{1;2;3}                    ROW(1:4)=1——按F9得到{1;2;3;4}   

                    ROW(2:4)=2 ——按F9得到{2;3;4}                    ROW(3:4)=3——按F9得到{3;4}                     ROW(4:4)=4——按F9得到{4}   

 

让我[em06]请帮忙解释.


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

本版积分规则

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

GMT+8, 2024-11-22 04:41 , Processed in 0.048961 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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