IBM Lotus Symphony


数组函数

此类别包含数组函数。

什么是数组?

含有数值的电子表格中关联的单元格区域组成数组。一个由 3 行 3 列组成的正方形单元格区域是一个 3 x 3 数组:

表 1. 3 x 3 数组
  A B C
1 7 31 33
2 95 17 2
3 5 10 50

最小的数组是一个由两个相邻单元格组成的 1 x 2 或者 2 x 1 数组。

什么是数组公式?

能够分析运用单元格区域中各个数值的公式称为数组公式。数组公式与其他公式的区别是:数组公式编辑处理的不是单个数值,而是多个数值。

数组公式不仅能够编辑处理多个数值,而且能够返回多个数值。数组公式的结果也是一个数组。

要使上面数组中个别单元格中的值增加 10,您无需对每个个别的单元格或值应用公式。相反,您只需使用一个数组公式即可。在电子表格的其他位置选择 3 x 3 的单元格区域,输入数组公式 =10*A1:C3,然后使用组合键 Ctrl+Shift+Enter 确认输入。计算结果仍然是一个 3 x 3 的数组,只是单元格区域(A1:C3)中的数值均放大了十倍。

除了乘法以外,您还可以在引用区域 (数组) 中运用其他各种运算符。您可以使用 Lotus® Symphony™ Spreadsheets 进行加(+)、减(-)、乘(*)、除(/)、指数运算(^)、并置(&)和比较(=<>、<、>、<=、>=)。如果使用了数组公式,这些运算符可以编辑处理单元格区域中的各个数值并采用数组形式返回结果。

数组公式中的比较运算符针对空单元格的处理方式与普通公式所用的方式相同,也就是说,作为零或空字符串处理。例如,如果 A1 和 A2 为空单元格,那么数组公式 {=A1:A2=""}{=A1:A2=0} 都将返回包含 TRUE 的 1 列 2 行的数组。

什么时候需要使用数组公式?

当需要对不同的数值重复执行相同的计算时,使用数组公式可以带来不少方便。如果以后要更改计算方法,也只需更新数组公式。要添加数组公式,请选择整个数组区域,然后对数组公式进行所需的更改。

因为数组公式不会占用大量内存,所以在需要计算多个值时,使用数组公式也可以节省内存空间。此外,由于数组公式适用于多个单元格区域,因此在执行复杂计算时,它也是一个非常重要的工具。Lotus Symphony 针对数组提供了各种数学函数,例如用于将两个数组相乘的 MMULT 函数或用于计算两个数组的标量积的 SUMPRODUCT 函数。

使用 Lotus Symphony Spreadsheets 中的数组公式

也可以创建“普通”公式,即用引用区域(例如参数)表示数组公式。计算结果是引用区域与公式所在的行或列形成的交集。如果没有交集或者交集区域含有多个行或列,将会显示错误消息“#value!”。下面将通过具体示例加以说明:

创建数组公式

如果使用函数向导创建数组公式,那么每次都必须选中数组复选框,这样结果才会以数组形式返回。否则,将只返回被计算数组左上角单元格中的数值。

当直接向单元格输入数组公式时,请使用组合键 Shift+ Ctrl+Enter 而不要使用 Enter 键。只有这样操作,输入的公式才会成为数组公式。

备注图标 数组公式在 Lotus Symphony Spreadsheets 中以花括号括起。但是,不能通过手动输入花括号来创建数组公式。

数组计算结果所在的单元格是自动保护的,无法任意更改。只有在选定了整个数组单元格区域后,才可以编辑或者复制数组公式。

在公式中使用内联数组常量

Lotus Symphony Spreadsheets 支持在公式中使用内联矩阵/数组常量。内联数组由花括号“{”和“}”括起。每个元素都可以是数字(包括负数)、逻辑常量(TRUE 和 FALSE)或文字串。不允许使用非常量表达式。可以在数组中输入一行或多行,一列或多列。所有行/列必须由相同数目的元素组成。

列分隔符(分隔一行中的元素)为分号“;”。行分隔符为竖线符号“|”。分隔符与语言及语言环境都无关。

不能对数组进行嵌套。

示例:

={1;2;3}

由三个数字 1、2 和 3 组成的单行数组。

要输入该数组常量,您需要在一行中选择三个单元格,然后使用花括号和分号输入公式 ={1;2;3},接着按 Ctrl+Shift+Enter。

={1;2;3|4;5;6}

由两行组成的数组,每行三个值。

={0;1;2|FALSE;TRUE;"two"}

混合数据数组。

=SIN({1;2;3})

作为矩阵公式输入,结果是自变量为 1、2 和 3 的三个 SIN 计算值。

编辑数组公式

  1. 选择含有数组公式的单元格区域或数组。要选择整个数组,请将单元格光标移到数组区域中,然后按 Ctrl+/ 键,其中 / 是数字小键盘中的除号键。

  2. 按 F2 键或者置光标于输入行内。这两个操作都可让您编辑公式。

  3. 完成编辑修改之后,请按下 Ctrl+Shift+Enter 确认修改。

提示图标 您可以对数组的各个部分单独进行格式化。例如,您可以更改字体颜色。选择单元格区域,然后根据需要更改属性。

复制数组公式

  1. 选择含有数组公式的单元格区域或数组。

  2. 按 F2 键或者置光标于输入行内。

  3. 借助组合键在输入行内复制公式 Ctrl+C。

  4. 选择一个要插入数组公式的单元格区域,然后单击 F2 键或者将光标移到输入行中。

  5. 按 Ctrl+V 键将公式粘贴到所选位置,然后按 Ctrl+Shift+Enter 键进行确认。至此,选定区域就含有数组公式。

调整数组区域

如果要编辑输出数组,请执行以下操作:

  1. 选择含有数组公式的单元格区域或数组。

  2. 在该选择的右边,您会单刀一个小图标,可以使用鼠标在一定范围内缩放。

备注图标 当调整数组区域时,数组公式不会自动调整。您只可以更改要显示的结果的区域。

通过按住 Ctrl 键,您可以在指定区域内创建数组公式的副本。

条件数组的计算

条件数组的计算是包含 IF() 或 CHOOSE() 函数的数组或矩阵公式。公式中的条件自变量是一个区域引用或矩阵结果。

在以下示例中,公式 {=IF(A1:A3>0;"yes";"no")} 的 >0 测试应用于 A1:A3 区域内的每个单元格,并将结果复制到对应的单元格中。

表 2. 条件数组计算示例
  A B(公式) B(结果)
1 1 {=IF(A1:A3>0;"yes";"no")} yes
2 0 {=IF(A1:A3>0;"yes";"no")} no
3 1 {=IF(A1:A3>0;"yes";"no")} yes

以下函数提供强制数组处理功能:CORREL、COVAR、FORECAST、FTEST、INTERCEPT、MDETERM、MINVERSE、MMULT、MODE、PEARSON、PROB、RSQ、SLOPE、STEYX、SUMPRODUCT、SUMX2MY2、SUMX2PY2、SUMXMY2 和 TTEST。如果将区域作为自变量引用,那么调用这些函数之一时,函数将表现为数组函数。下表提供了强制数组处理的示例:

表 3. 强制数组处理示例
  A B(公式) B(结果) C(强制数组公式) C(结果)
1 1 =A1:A2+1 2 =SUMPRODUCT(A1:A2+1) 5
2 2 =A1:A2+1 3 =SUMPRODUCT(A1:A2+1) 5
3   =A1:A2+1 #VALUE! =SUMPRODUCT(A1:A2+1) 5

MUNIT

返回特定大小的单位方阵。 单位数组是主对角线元素均等于 1、所有其他数组元素均等于 0 的方阵。

语法

MUNIT(Dimensions)

Dimensions 是单位数组的大小。

备注图标 您可以在本页顶部找到有关数组函数的常规描述。

示例

在电子表格中拖拉制作一个正方区域,比如:在单元格 A1 至 E5 处。

在不取消选择区域的情况下,选择 MUNIT 函数。选中数组复选框。为数组单位输入期望的维数(在本示例中为 5),然后单击确定

您也可以在所选区域的最后一个单元格(E5)输入公式 =Munit(5),然后 Shift+Ctrl+Enter。

这时,您就可以在单元格区域 A1:E5 中看到一个单位数组。

要获取更多说明,请参阅本页面的顶部。

FREQUENCY

以单列数组形式表示频率分布。 该函数计算“数据”数组中值在“类别”数组所指定值范围内的值的数目。

语法

FREQUENCY(data_array; group_array)

Data 表示针对要计数的值的引用。

Classes 表示限制值的数组。

备注图标 您可以在本页顶部找到有关数组函数的常规描述。

示例

在下表中,列 A 列出没有进行排序的定量值。列 B 包含您为类输入的上限,这些类用于划分列 A 中的数据。根据在单元格 B1 中输入的限制值,FREQUENCY 函数返回小于或等于 5 的测量值的数目。由于 B2 中的限制为 10,因此 FREQUENCY 函数返回的第二个结果是大于 5 且小于或等于 10 的测量值的数目。单元格 B6 中输入的文本“>25”仅供参考。

表 4. FREQUENCY 函数示例
  A B C
1 12 5 1
2 8 10 3
3 24 15 2
4 11 20 3
5 5 25 1
6 20 >25 1
7 16    
8 9    
9 7    
10 16    
11 33    

选择单列区域,用于根据类别限制输入频率。在选定单元格时,必须比类别数多选一个域。在本示例中,选择的是区域 C1:C6。调用函数向导中的 FREQUENCY 函数。在(A1:A11)中选择数据区域,然后选择输入了类别限制(B1:B6)的类别区域。选择数组复选框,然后单击确定。这样您会在区域 C1:C6 中看到频率计数。

要获取更多说明,请参阅本页面的顶部。

MDETERM

返回数组的行列式。 这个函数在当前单元格中返回一个计算值,因此无需预先为计算结果定义一个区域。

语法

MDETERM(Array)

Array 是一个要定义其行列式值的方阵。

备注图标 您可以在本页顶部找到有关使用数组函数的常规介绍。

要获取更多说明,请参阅本页面的顶部。

MINVERSE

返回逆数组。

语法

MINVERSE(Array)

Array 表示要计算逆数组的方阵。

要获取更多说明,请参阅本页面的顶部。

示例

选择一个正方形区域,然后选择 MINVERSE。选择输出数组,选择数组域,然后单击确定

MMULT

计算两个数组的乘积。 数组 1 的列数必须与数组 2 的行数相同,方阵的行列数都必须相等。

语法

MMULT(Array; Array)

参数中的第一个 Array 表示用于计算数组乘积的第一个数组。

参数中的第二个 Array 表示用于计算数组乘积的第二个数组,其行数必须与第一个数组的列数相等。

备注图标 要获取更多说明,请参阅本页面的顶部。

示例

选择一个正方形区域。选择 MMULT 函数。选择第一个 Array,然后选择第二个 Array。使用函数向导,选中数组复选框。单击确定。输出数组将显示在第一个选定的区域中。

TRANSPOSE

使数组的行和列对调。

语法

TRANSPOSE(Array)

array 表示电子表格中要对调行列的数组。

要获取更多说明,请参阅本页面的顶部。

示例

在工作表中,选择能够显示行列对调后数组的区域。如果要对调行列的数组含有 n 行 m 列,那么选择的区域必须至少含有 m 行 n 列。然后直接输入公式,选择要对调行列的数组并按 Shift+Ctrl+Enter 键。或者,如果您正在使用函数向导,请选中数组复选框。行列对调后的数组显示在选定的目标区域中,并且自动保护,无法对其进行更改。

LINEST

针对最符合数据集的直线返回统计信息表格。

语法

LINEST(data_Y; data_X; linearType; stats)

data_Y 是单行或单列区域,用于指定一组数据点的 y 坐标。

data_X 是对应的单行或单列区域,用于指定 x 坐标。如果省略 data_X,那么缺省值将为 1, 2, 3, ..., n。如果有多组变量,那么 data_X 可能是对应多行或多列的区域。

LINEST 使用线性回归法(最小二乘法)找出最适合该数据的直线 y = a + bx。通过多组变量所得出直线的形式为 y = a + b1x1 + b2x2 ... + bnxn

如果 linearType 为 FALSE,那么找到的直线将穿过原点(常量 a 为零;y = bx)。如果省略 linearType,那么该值缺省为 TRUE(直线不会强制穿过原点)。

如果省略 stats 或其为 FALSE,那么将只返回统计信息表的顶行。如果其值为 TRUE,那么返回整个表格。

LINEST 返回如下所示的统计信息表(数组),并且必须作为数组公式输入(例如,通过使用 Ctrl+Shift+回车键,而不单单是回车键)。

Lotus Symphony Spreadsheets 函数中,标记为“可选”的参数仅当其后没有参数时才可以省略。例如,在具有 4 个参数的函数中,如果后两个参数标记为“可选”,那么可将第 4 个参数或者第 3 和第 4 个参数省略,但不能单独省略第 3 个参数。

要获取更多说明,请参阅本页面的顶部。

示例

此函数返回一个数组,其处理方法与其他数组函数相同。选择用于显示结果的区域,然后选择此函数。选择 data_Y。如果需要,您可以输入其他参数。选择数组并单击确定

函数返回的结果(如果 stats = 0)将至少显示回归直线的斜率及其与 Y 轴的交点。如果 stats 不等于零,函数还能够显示其他结果。

LINEST 函数的其他计算结果:

请见下列示例:

表 5. LINEST 函数示例
  A B C D E F G
1 x1 x2 y   LIN EST 值    
2 4 7 100   4,17 3,48 82,33
3 5 9 105   5,46 10,96 9,35
4 6 11 104   0,87 5,06 #NA
5 7 12 108   13,21 4 #NA
6 8 15 111   675,45 102,26 #NA
7 9 17 120        
8 10 19 133        

列 A 含有若干 X1 值,列 B 含有若干 X2 值,列 C 含有若干 Y 值。先将这些数值输入电子表格中。现在您已经在电子表格中设置了 E2:G6 并激活了函数向导。要使 LINEST 函数起作用,您必须在函数向导中选中数组复选框。然后在电子表格中选择(或通过键盘输入)以下数据:

data_Y 为 C2:C8

data_X 为 A2:B8

linearTypestats 中输入 1。

单击确定 后,Lotus Symphony Spreadsheets 将立即使用示例中显示的 LINEST 值填充以上示例。

公式栏中的公式对应于 LINEST 数组 {=LINEST(C2:C8;A2:B8;1;1)} 的每个单元格

这表示计算后的 LINEST 值:

E2 和 F2:根据 x1 和 x2 的值计算出的回归线 y=b+m*x 的斜率 m。以相反的顺序给出结果;即在 E2 中存储斜率 x2,在 F2 中存储斜率 x1。

G2:在 y 轴上的截距 b。

E3 和 F3:斜率值的标准偏差。

G3:轴截距的标准估计偏差。

E4:判断系数(RSQ)

F4:采用回归法计算出的 y 值的标准估计偏差。

E5:从方差分析得出的 F 数值。

F5:从方差分析得出的自由度。

E6:y 估计值与其算术平均值的平方偏差和。

F6:y 估计值与 y 实际值的平方偏差和。

要获取更多说明,请参阅本页面的顶部。

LOGEST

该函数计算对以指数回归曲线 (y=b*m^x) 形式输入的数据的调整。

语法

LOGEST(DataY; DataX; FunctionType; Stats)

DataY 表示 Y 数据数组。

DataX(可选)表示 X 数据数组。

FunctionType(可选)。如果 Function_Type = 0,那么将计算表单中的函数 y = m^x。否则,将计算 y = b*m^x 函数。

Stats(可选)。若 Stats=0,计算的便只是回归系数。

Lotus Symphony Spreadsheets 函数中,标记为“可选”的参数仅当其后没有参数时才可以省略。例如,在具有 4 个参数的函数中,如果后两个参数标记为“可选”,那么可将第 4 个参数或者第 3 和第 4 个参数省略,但不能单独省略第 3 个参数。

要获取更多说明,请参阅本页面的顶部。

示例

请参阅 LINEST。然而,将不返回平方和。

SUMPRODUCT

将指定数组中对应的元素相乘,然后返回这些乘积的和。

语法

SUMPRODUCT(Array1; Array2...Array30)

Array1, Array2...Array30 表示要将其中对应元素相乘的数组。

自变量列表中必须至少包含一个数组。如果仅指定一个数组,那么将对其所有元素求和。

示例

表 6. SUMPRODUCT 示例
  A B C D
1 2 3 4 5
2 6 7 8 9
3 10 11 12 13

=SUMPRODUCT(A1:B3;C1:D3) 返回 397。

计算:A1*C1 + B1*D1 + A2*C2 + B2*D2 + A3*C3 + B3*D3

您可以使用 SUMPRODUCT 来计算两个向量的标积。

备注图标 SUMPRODUCT 返回单个数字,因此不需要像输入数组函数那样输入该函数。

要获取更多说明,请参阅本页面的顶部。

SUMX2MY2

返回两个数组中对应数值的平方差之和。

语法

SUMX2MY2(ArrayX; ArrayY)

ArrayX 表示第一个数组,其元素平方值将作为被减数。

ArrayY 表示第二个数组,其元素平方值将作为减数。

要获取更多说明,请参阅本页面的顶部。

SUMX2PY2

返回两个数组中对应数值的平方和之和。

语法

SUMX2PY2(ArrayX; ArrayY)

ArrayX 表示第一个数组,其自变量平方值之和将作为被加数。

ArrayY 表示第二个数组,其元素平方值之和将作为加数。

要获取更多说明,请参阅本页面的顶部。

SUMXMY2

求两个数组中对应数值差的平方和。

语法

SUMXMY2(ArrayX; ArrayY)

ArrayX 表示第一个数组,其元素的值将作为被减数。

ArrayY 表示第二个数组,其元素的值将作为减数。

要获取更多说明,请参阅本页面的顶部。

TREND

返回线性回归拟合线上的一组纵坐标值。

语法

TREND(DataY; DataX; NewDataX; LinearType)

DataY 表示 Y 数据数组。

DataX(可选)表示 X 数据数组。

NewDataX(可选)表示 X 数据的数组,这些数据用于重新计算数值。

LinearType(可选)。如果 LinearType = 0,那么直线将作为通过零点的方式计算。那么直线当作经过零点计算。缺省值为 LinearType <> 0。

Lotus Symphony Spreadsheets 函数中,标记为“可选”的参数仅当其后没有参数时才可以省略。例如,在具有 4 个参数的函数中,如果后两个参数标记为“可选”,那么可将第 4 个参数或者第 3 和第 4 个参数省略,但不能单独省略第 3 个参数。

要获取更多说明,请参阅本页面的顶部。

示例

选择一个用于显示回归数据的电子表格区域。选择该函数。通过键盘输入或用鼠标选择输出数据。标记 数组域。单击确定。将显示根据输出数据计算得到的回归数据。

GROWTH

计算数组中指数回归函数值。

语法

GROWTH(DataY; DataX; NewDataX; FunctionType)

DataY 表示 Y 数据数组。

DataX(可选)表示 X 数据数组。

NewDataX(可选)表示 X 数据数组,该数组中的值将被重新计算。

FunctionType(可选)。如果 FunctionType = 0,那么将计算 y = m^x 形式的函数。否则,将计算 y = b*m^x 函数。

Lotus Symphony Spreadsheets 函数中,标记为“可选”的参数仅当其后没有参数时才可以省略。例如,在具有 4 个参数的函数中,如果后两个参数标记为“可选”,那么可将第 4 个参数或者第 3 和第 4 个参数省略,但不能单独省略第 3 个参数。

要获取更多说明,请参阅本页面的顶部。

示例

此函数返回一个数组,其处理方法与其他数组函数相同。选择一个用于显示计算结果的区域,然后选择此函数。选择 DataY。输入其他任何参数,选中数组,然后单击确定


产品反馈 | 其他文档 | 商标