为什么Excel中= row(1:row(1:a 11))总是提示错误?
有人觉得Excel中的行函数像甘草。甘草的疗效非常有限,但在大多数方剂中却是不可或缺的。甘草在中药中的作用是调和药性,使其他药材发挥最大功效。Excel中的row函数也是如此。单行函数是为了得到某一行号或区间。特殊情况下可能是按照一定规律不连续的区间线数,作用非常有限。但是在很多公式中,尤其是一些复杂的公式和技巧性的公式中,row函数起到了很大的作用,让公式活起来。
row函数可以获取单个行号,比如函数的参数是单元格,则获取该单元格的行号,比如row(A12),则获取A12单元格的行号;也可以用整行作为参数得到第二个行号的行号2,比如row(2:2)。参数也可以根据需要使用相对引用或绝对引用。
Row获取多个行号,一般直接使用这些行号的起止号,比如:row(1:11),即获取第1行到第11行的行号,与row (A1: A65438)进行比较
如上所述,row函数的参数要么是单元格地址,要么是列标题的行号被省略。如果希望单元格地址或行号是变量,即函数或公式的结果,则使用indirect函数来引用它。结合具体应用如图所示。如图所示:
A2是一个数字。现在,我们需要得到A2中每个数的内存数组(通常用于其他应用,比如所有数的和),B2是A2数的个数:
B2=LEN(A2)
D2得到了每个数字的内存数组:
D2=MID(A2,ROW(INDIRECT(" 1:" & amp;B2),1)
公式中的B2一般直接使用len(A2):
D2=MID(A2,ROW(INDIRECT(" 1:" & amp;LEN(A2))),1)
在公式编辑栏中拖动鼠标以选择:
ROW(INDIRECT(" 1:" & amp;B2))
然后按F9,可以看到结果是从1到8的一系列数字。这样,mid获取字符的方式就很清晰了。在A2中,从第1位到第8位,一次取一位。这样就得到了A2中每个数位上的数字。
另一种不常见的row方式是ROW(A:A)的形式,就是获取工作表的所有行号序列。
而你的公式,row的参数不签以上任何一种情况,就是不符合参数,当然会错。