|
楼主 |
发表于 2009-7-31 17:32
|
显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
回复 389楼 pandi83 的帖子
类似这样的公式,本帖已有解答,请先看一下本帖首页的有关知识。
1、IF(条件,4^8,row)——将满足条件的返回为4^8也就是65536,不满足的返回Row($1:$7),这里的条件是B列“有”的数据。——因此,IF得到的是65536和B列没有的数据所在的行号组成的数组。
比如,B列没有的数据是A1、A3、A5、A7,那么IF返回的是{1;65536;3;65536;5;65536;7}
2、ROW(1:1)是向下复制公式时利用相对引用特性自动变化的,是作为SMALL的第2参数,在第1行就是SMALL(行号数组,1),取得最小的IF得到的行号;在第2行就是SMALL(行号数组,2),取得第2小的IF得到的行号;……
明白了这两点,你就知道SMALL根本与你说的“数据换成文本或不需要按照顺序排列”无关,它是用来取出行号的。
希望您能认真阅读一下本帖首页以及相关的解释。
[ 本帖最后由 gouweicao78 于 2009-7-31 17:33 编辑 ] |
|