(2016-01-29 22:58:40)转载,下面我们就来聊聊关于excel数组公式详解?接下来我们就一起去了解一下吧!

excel数组公式详解(数组公式基础数组运算)

excel数组公式详解

(2016-01-29 22:58:40)

转载

标签: excel公式教程 数组公式分类: Excel公式教程-原理篇

在单元格输入普通公式,按Enter键或编辑栏左侧的“输入”按钮完成输入;而在单元格输入数组公式需要按Ctrl Shift Enter三键完成输入,所以数组公式也叫做CSE公式。

按Ctrl Shift Enter三键输入数组公式后,在编辑栏显示该公式用大括号“{}”括住。不要直接输入这对大括号来代替按三键,那样输入的只是文本,不是公式。

数组公式通过把普通公式中的单值构建成数组,并按数组中元素的个数进行重复计算,称为数组运算。

如图,根据单价和数量,直接求总金额。

在C2输入“=SUM(A2:A3*B2:B3)”,然后按Ctrl Shift Enter三键,Excel就自动给公式加上“{}”,并计算出总金额340。

Excel是怎么计算出这个结果的?

首先,分析公式中哪些部分要重复计算,或者说哪些部分由普通公式的单值变成了数组

这里SUM函数的参数是一个乘法式子,在普通公式中乘法运算符前后都是一个单值,而现在都是一个区域引用,所以这个乘法式子要进行重复计算,就是要重复进行多次乘法运算。

然后,分析参与运算的数组的维度和大小,并据此确定该数组运算需要重复计算的次数,以及返回的数组的维度和大小

这个乘法式子的两个操作数A2:A3和B2:B3都是一个单列两行的数组,各有两个元素。于是我们可以确定:该乘法式子将重复计算两次,并返回一个单列两行的数组。

具体计算步骤如下:第一次计算取第一个数组的第一个元素A2,跟第二个数组的第一个元素B2相乘,得到的100作为返回数组的第一个元素;第二次计算取第一个数组的第二个元素A3,跟第二个数组的第二个元素B3相乘,得到的240作为返回数组的第二个元素。乘法式子返回数组{100;240}。(在编辑栏里,用鼠标拉黑公式中的“A2:A3*B2:B3”,然后按F9,可以看到该部分的计算结果。)

最后计算SUM({100;240})得到最终结果340。

如果输入公式后没有按Ctrl Shift Enter三键,而是直接按了回车,会是什么情况呢?

在C2输入上述公式后直接按回车,结果返回100。

在C3输入上述公式后直接按回车,结果返回240。

如果在C4输入上述公式后直接按回车,却返回错误值#VALUE!。

可见,没有按三键,那个乘法式子只能计算一次,并且按照绝对交集只取公式所在行的A列和B列数据相乘。按三键是告诉Excel需要进行数组运算

我们再来看另一个公式,在C2输入“=SUMPRODUCT(A2:A3*B2:B3)”后直接按回车,结果是340。为什么这个公式不用按三键也可以计算出正确结果呢?

这是因为Excel能按公式所需自动转换数值类型。SUMPRODUCT函数的参数要求是数组,Excel能自动对里面的乘法式子进行数组运算,并返回数组。

如图,对A列的数字值和文本型数字求和。(单元格A3的“04”是文本型数字。)

在B1输入“=SUMPRODUCT(--TEXT(A1:A3,"0;-0;0;!0"))”后直接按回车,就能计算出正确的结果7。数组A1:A3一共3个元素,公式对“--TEXT”进行3次计算,并返回一个单列3行的数组。

在B1输入“=SUMPRODUCT(IF(ISERR(-A1:A3),,--A1:A3))”后直接按回车,结果返回3;改为按三键输入公式,才可以返回正确结果7。为什么会这样呢?因为SUMPRODUCT函数所需数组需要经IF函数计算后才可以确定,而IF函数不能自动进行数组运算,所以公式需要按三键。

三维引用是对连续多张工作表上相同单元格或单元格区域的引用。三维引用跟三维数组不同。三维引用不能分次计算,计算后只能返回单值而不能返回数组。

Excel公式是在工作表这个平台上运行的,一种工作表就是一个二维数组。在数组公式中,使用OFFSET和INDIRECT函数可以生成所谓的三维、四维数组,但严格来说那不是真正意义的三维、四维,只不过是若干个二维数组而已,数组公式对这些二维数组进行分次计算。