|
![](https://clubstatic.excelhome.net/image/common/ico_lz.png)
楼主 |
发表于 2018-4-8 18:24
|
显示全部楼层
本帖最后由 wangg913 于 2018-4-8 18:49 编辑
三、引用
参数类型 Logical逻辑值、Text文本、Number数字容易理解,Value数值包含大多数数据类型。值得一提、相对复杂一点的是Reference和Range。
上一章提到,引用包括普通引用、三维引用和多维引用三种,下面简述一下引用对函数的适应性。
1、单个区域
单个区域,或者是单个单元格,例如:A1,或者是矩形区域,例如:A1:B2。
1)区域运算
区域运算符“:”可以将左上角和右下角之间的单元格结合起来,实际上只要是普通引用都可以运用区域运算符结合。例如:
A2:1:1 表示 A2 和第1行结合,代表 1:2,即第1行和第2行;
同理,C2:B:B 是 C2 和 B列结合,代表 B:C ,即 B列和 C列;
同理,A1:B4:2:2 是 A1:B4 和 第2行结合,代表 1:4 ,即 第1行至第4行。
2)公式生成的引用
单个的矩形区域可以通过 INDEX、OFFSET、INDIRECT等函数生成,例如:
这3个公式的结果都是引用,都代表 A1:A4。
3)公式生成的引用结合公式生成的引用,也可以用区域运算符结合起来。例如:
这3个公式的结果也都是引用,都代表 A3:B5。
同理,区域运算符两侧的引用都可以是公式生成的,例如:
- INDEX(A:A,3):INDEX(B:B,5)
复制代码- OFFSET(A1,2,):OFFSET(B1,4,)
复制代码- INDIRECT("A3"):INDIRECT("B5")
复制代码- INDEX(A:A,3): OFFSET(B1,4,)
复制代码- INDIRECT("A3"):OFFSET(B1,4,)
复制代码
单个区域,无论是直接引用,还是公式生成的引用,都可以匹配 Value、Number、Logical 或者是 Array 几种参数数据类型。
2、联合引用
使用联合运算符“,”,将多个区域组成一个区域集,这时每个区域的行列数可以不相同,根据运算符将这种引用叫做“联合引用”。例如:
三个区域大小各不相同,行列数分别为2*2、1*1、1*3。
使用IS函数判断一下,检查它是否为引用
- ISREF((A1:B2,A3,A5:C5))=TRUE
复制代码
当然,联合引用中的各区域也可以用函数生成,例如:
- (OFFSET(A1,,,2,2),A3,INDIRECT("A5:C5"))
复制代码- (INDEX(A:A,1):B2,A3,INDEX(A:C,5,))
复制代码
联合引用,可以作为部分同类型、多参数的数学函数、统计函数的参数,但是单个参数的函数无法使用。
另外,参数为range的不适用。举例:
参数为多个 Number 的适合
参数为 Array 的适合
- LARGE((A1:B2,A3,A5:C5),1)
复制代码
参数为单个 Number 不适合
- ABS((A1:B2,A3,A5:C5))=#VALUE!
复制代码
参数为 Range 不适合
- SUMIF((A1:B2,A3,A5:C5),">0")
复制代码
联合引用是多区域集,因此,即便参数为 Reference 的也不全适用。例如:
- COLUMN((A1:B2,A3,A5:C5))= #REF!
复制代码- OFFSET((A1:B2,A3,A5:C5),0,)= #VALUE!
复制代码
汇总一下,可以将联合引用作为参数的函数,包括同类型、多参数的部分数学函数(SUM、SUMSQ、AGGREGATE等)、统计函数(MAX、MIN、LARGE、SMALL、FREQUENCY等),部分引用函数(AREAS、INDEX),部分信息函数(ISREF、ISERROR、ISERR等)。
3、三维引用
三维引用是多表相同位置的引用集合,不能直接参与运算,例如:
也不能用引用函数生成,例如:
- INDIRECT("Sheet1:Sheet2!A1")=#REF!
复制代码
实际上,三维引用并不是引用。判断一下:
- ISREF(Sheet1:Sheet2!A1)=FALSE
复制代码
可以将三维引用作为参数的函数,包括同类型多参数的部分数学函数(SUM、SUMSQ)、统计函数(MAX、MIN、LARGE、SMALL、FREQUENCY、COUNT、VAR类、STDEV类等),凡是参数为Reference、ref和Range的都不适用。举例:
- =FREQUENCY(Sheet1:Sheet2!A1,{1,2})
复制代码- ROW(Sheet1:Sheet2!A1)= #VALUE!
复制代码- COUNTIF(Sheet1:Sheet2!A1,1) = #VALUE!
复制代码
|
评分
-
2
查看全部评分
-
|