
Excel中 =ROW(1:ROW(1:A11))为什么老是提示错误
不知你这个公式是要达到什么目的,但估计应该是某个公式中的一部分。
个认为,Excel中的row函数好比中药中的甘草,甘草的本身疗效很有限,但却大部分处方中却少不了它。甘草在中药中的作用,就是调和药性,使其他药材发挥出最大的药效。Excel中的row函数也一样,单独一个row函数就是得到某个行号或某个区间,特殊的情况下也许是按某规律的不连续区间行号,单独使用的作用非常有限。但很多公式中,特别是一些复杂的公式,技巧性的公式中,row函数却起了极大的作用,把公式用活了。
row函数取得单一行号的方式,可以是函数的参数为某个单元格,则取得该单元格的行号,如row(A12),得到A12单元格的行号12;也可以用参数为整行的方式,如row(2:2),取得第2行号的行号2。参数同样可根据需要用相对引用或绝对引用。
row取得多个行号,一般直接用这些行号起始和终止数,如:row(1:11),就是取得第1行到第11行的行号,与row(A1:A11)效果一样,但一般熟练掌握Excel的人较少使用后一方式。
如上所说,row函数的参数要不是单元格地址,要不是省略列标的行号。如果希望单元格地址或行号是变量,即函数或公式的结果,那么就要用indirect函数来引用。结合如图所示的具体应用来说明。如图:
A2中是数字,现在要获取A2中每个数字的内存数组(一般是再用于其他应用,如所有数字的和),B2中为A2数字的个数:
B2=LEN(A2)
D2得到各个数字的内存数组:
D2=MID(A2,ROW(INDIRECT("1:"&B2)),1)
公式的B2一般直接用len(A2):
D2=MID(A2,ROW(INDIRECT("1:"&LEN(A2))),1)
在公式编辑栏中拖动鼠标选择:
ROW(INDIRECT("1:"&B2))
然后按F9,可以看到,得到的结果是从1到8的一系列数字。这样mid取得字符的方式就很明了了,在A2中,从第1位数字开始,直到第8位,每次取一位。这样就得到了A2中的各个数位上的数字。
row的另一不常见的方式是ROW(A:A)这样的形式,这是取得工作表的所有行号序列。
而你的公式,row的参数不符号上面所说的任何一种情况,也就是不符合参数规定的,当然就要出错了。
不如你把需求说清楚,让人家给你公式!
=ROW()
=ROW(A1)
=ROW(1:11)
=SUM(ROW(INDIRECT("A1:A"&ROW(A11))))