以下是引用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编辑过] |