Excel公式教程 数组公式基础:数组扩展
2016-09-18 21:29
429 查看
在数组公式中,参与数组运算的,可以只有一个数组,也可以有两个甚至更多的数组。
对参与数组运算的各个数组,要求具有相同的维度,各维度上也要有相同的大小。数组运算分别取各数组中相同维度上相同位置的数值进行重复计算。例如:
={1,2;4,5;7,8}+{10,20;40,50;70,80} 返回{11,22;44,55;77,88}
两个数组都是两列三行的二维数组,返回的结果也是一个两列三行的二维数组。
如果参与数组运算的各个数组的维数不同,或对应维度上的大小不同,Excel将自动进行数组扩展。
扩展有两种方式:原值扩展、NA值扩展。
原值扩展是用原数组的值填充扩展的位置。对于不同维度的数组,在新维度上进行原值扩展。
NA值扩展是用#N/A值填充扩展的位置。对于同一维度上因大小不同而进行的扩展,即原有维度上进行的扩展,将以#N/A值填充。
单值或单元素数组,可以看成是零维度,它们的扩展属于新维度上的扩展,都是原值扩展。例如:
={1,2;4,5;7,8}+1 与 ={1,2;4,5;7,8}+{1} 是相等的,扩展成相同大小的数组后变成
={1,2;4,5;7,8}+{1,1;1,1;1,1},返回{2,3;5,6;8,9}。
同方向的一维数组扩展,就是在原有维度上的扩展,使用NA值扩展。例如:
={"A","B","C","D"}&{"E","F"} 扩展成相同大小的数组后变成
={"A","B","C","D"}&{"E","F",#N/A,#N/A} 返回{"AE","BF",#N/A,#N/A}。
不同方向的一维数组扩展,相当于在新维度上的扩展,使用原值扩展,并生成一个二维数组。例如:
={4,5}*{6;7;8}
第一个是单行两列的数组,第二个是三行单列的数组。行与列属于不同的维度,扩展后变成:
={4,5;4,5;4,5}*{6,6;7,7;8,8}
即单行的{4,5}按第二个数组的行数扩展成三行,单列的{6;7;8}按第一个数组的列数扩展成两列。
返回的结果是一个三行两列的二维数组:{24,30;28,35;32,40}
一维数组与二维数组运算所发生的数组扩展,可能同时存在两种扩展方式:一维数组扩展为二维数组,在新维度上使用原值扩展;另外,在原有维度上,如果大小不同,还可能进行NA值扩展。例如:
={4,5}+{10,20,30;40,50,60}
扩展成
={4,5,#N/A ;4,5,#N/A}+{10,20,30;40,50,60}
结果是{14,25,#N/A;44,55,#N/A}
又如:
={4;5;6}+{10,20;40,50}
扩展成
={4,4;5,5;6,6}+{10,20;40,50;#N/A,#N/A}
结果是{14,24;45,55;#N/A,#N/A}
不同大小的二维数组扩展,属原维度上的扩展,使用NA值扩展。例如:
={4,5,6;7,8,9}+{10,20;40,50;70,80}
第一个是两行三列的数组,第二个是三行两列的数组。扩展后变成:
={4,5,6;7,8,9;#N/A,#N/A,#N/A}+{10,20,#N/A;40,50,#N/A;70,80,#N/A}
返回的结果是一个三行三列的二维数组:{14,25,#N/A;47,58,#N/A;#N/A,#N/A,#N/A}
对参与数组运算的各个数组,要求具有相同的维度,各维度上也要有相同的大小。数组运算分别取各数组中相同维度上相同位置的数值进行重复计算。例如:
={1,2;4,5;7,8}+{10,20;40,50;70,80} 返回{11,22;44,55;77,88}
两个数组都是两列三行的二维数组,返回的结果也是一个两列三行的二维数组。
如果参与数组运算的各个数组的维数不同,或对应维度上的大小不同,Excel将自动进行数组扩展。
扩展有两种方式:原值扩展、NA值扩展。
原值扩展是用原数组的值填充扩展的位置。对于不同维度的数组,在新维度上进行原值扩展。
NA值扩展是用#N/A值填充扩展的位置。对于同一维度上因大小不同而进行的扩展,即原有维度上进行的扩展,将以#N/A值填充。
一、单元素数组或单值与任意数组的运算
单值或单元素数组,可以看成是零维度,它们的扩展属于新维度上的扩展,都是原值扩展。例如:={1,2;4,5;7,8}+1 与 ={1,2;4,5;7,8}+{1} 是相等的,扩展成相同大小的数组后变成
={1,2;4,5;7,8}+{1,1;1,1;1,1},返回{2,3;5,6;8,9}。
二、同方向、不同大小的一维数组的运算
同方向的一维数组扩展,就是在原有维度上的扩展,使用NA值扩展。例如:={"A","B","C","D"}&{"E","F"} 扩展成相同大小的数组后变成
={"A","B","C","D"}&{"E","F",#N/A,#N/A} 返回{"AE","BF",#N/A,#N/A}。
三、不同方向的一维数组的运算
不同方向的一维数组扩展,相当于在新维度上的扩展,使用原值扩展,并生成一个二维数组。例如:={4,5}*{6;7;8}
第一个是单行两列的数组,第二个是三行单列的数组。行与列属于不同的维度,扩展后变成:
={4,5;4,5;4,5}*{6,6;7,7;8,8}
即单行的{4,5}按第二个数组的行数扩展成三行,单列的{6;7;8}按第一个数组的列数扩展成两列。
返回的结果是一个三行两列的二维数组:{24,30;28,35;32,40}
四、一维数组与二维数组的运算
一维数组与二维数组运算所发生的数组扩展,可能同时存在两种扩展方式:一维数组扩展为二维数组,在新维度上使用原值扩展;另外,在原有维度上,如果大小不同,还可能进行NA值扩展。例如:={4,5}+{10,20,30;40,50,60}
扩展成
={4,5,#N/A ;4,5,#N/A}+{10,20,30;40,50,60}
结果是{14,25,#N/A;44,55,#N/A}
又如:
={4;5;6}+{10,20;40,50}
扩展成
={4,4;5,5;6,6}+{10,20;40,50;#N/A,#N/A}
结果是{14,24;45,55;#N/A,#N/A}
五、不同大小的二维数组的运算
不同大小的二维数组扩展,属原维度上的扩展,使用NA值扩展。例如:={4,5,6;7,8,9}+{10,20;40,50;70,80}
第一个是两行三列的数组,第二个是三行两列的数组。扩展后变成:
={4,5,6;7,8,9;#N/A,#N/A,#N/A}+{10,20,#N/A;40,50,#N/A;70,80,#N/A}
返回的结果是一个三行三列的二维数组:{14,25,#N/A;47,58,#N/A;#N/A,#N/A,#N/A}
相关文章推荐
- poj1328贪心
- Layout布局之线性布局
- 浅谈#ifndef~#define~#endif~的作用
- (超快速计算素数个数)10的11次方内素数个数
- Activity Lifecycle
- (学习笔记)Java Message Digest Algorithm MD5
- 第四周项目3——单链表应用(3)
- JAVA泛型应用
- Square words(codevs 3301)
- 地下迷宫(bfs输出路径)
- Matlab基本函数-conj函数
- POJ3259-Wormholes(SPFA 判负环)
- spring in action第5章
- 顺序表应用4:元素位置互换之逆置算法
- mongodb导出数据,并解决乱码问题
- Redis 数据类型及抽象
- 第三周项目3-求集合并集
- 切换卡TabHost
- Spark 2.0内幕深度解密
- URL重写:RewriteCond指令与RewriteRule 指令格式