Module
Contents
Index 🔎︎

# 矩阵函数

此类中包含矩阵函数。

## 什么是矩阵？

包含数值的电子表格中互相关联的单元格范围称为矩阵。一个由 3 行 3 列组成的正方形单元格范围是一个 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，并通过使用 Command Ctrl
+Shift+Enter 组合键确认该输入。计算结果是一个 3 x 3 的数组，其中单元格区域 (A1:C3) 中的每一个数值都被放大了 10 倍。

除乘法以外，还可在引用区域（矩阵）中运用其他运算符。在 LibreOffice Calc 中，可进行加 (+)、减 (-)、乘 (*)、除 (/)、乘方 (^)、字符连接 (&) 和比较（=、<>、<、>、<=、>=）等运算。如果已输入矩阵公式，这些运算符还可用于单元格区域中的单个数值，并以矩阵的形式返回结果。

矩阵公式中的比较符处理空单元格的方式与普通公式一样，也就是说，当为 0 或者空字符串时返回结果一样。例如，当单元格 A1 和 A2 为空，矩阵公式 {=A1:A2=""} 和 {=A1:A2=0} 都将返回一个 1 列 2 行且包含 TRUE 的单元格矩阵。

### 何时用矩阵公式？

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

由于数组公式不会占用大量内存，因此在需要计算多个值时，使用数组公式还可以节省空间。此外，由于可以在计算中包括多个单元格范围，因此在进行复杂计算时，数组也是非常重要的工具。LibreOffice 为数组提供了不同的数学函数，如用于两个数组相乘的 MMULT 函数，或用于计算两个数组标量乘积的 SUMPRODUCT 函数。

## 使用 LibreOffice Calc 中的矩阵公式

也可创建一个“普通”公式，其中的引用区域（例如参数）表示一个矩阵公式。结果根据引用区域与公式所在行或列的交集而得。如果没有交集或者交集区域包含多行或列，则显示错误消息 "#value!"。下面将通过具体示例加以说明：

### 创建矩阵公式

如果使用函数向导创建矩阵公式，就必须每次都选中矩阵复选框，使结果返回矩阵中。否则，将只返回被计算矩阵左上角单元格中的数值。

如果您要直接往单元格中输入数组公式，就必须使用 Shift+Command Ctrl
+Enter 组合键，而不是只使用 Enter 键。只有这样操作，输入的公式才会成为数组公式。

在 LibreOffice Calc 中，矩阵公式前后会加上大括号。不能通过手动输入大括号来创建矩阵公式。

结果矩阵的单元格将自动保护，无法对其进行修改。但是，您可以选择整个矩阵单元格区域后，对其进行编辑或复制矩阵公式。

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

Calc 支持在函数中使用内联矩阵/数组常量。一个内联数组用一对花括号括起来。数组元素可以是数字（包括负数）、逻辑常量（TRUE、FALSE）或字符串，但不可以是非常量表达式。一个数组可以输入一行或多行，也可以输入一列或多列。所有行必须含有同样数目的元素， 所有列必须含有同样数目的元素。

列分隔符（分隔行内元素）与行分隔符受语言与区域决定。但本帮助内容中，“;”分号与“|”符号分别作为列与行分隔符。例如在“英语”区域中，“,”用作列分隔符，而“;”用作行分隔符。

You can view and change the row and column separator in LibreOffice - Preferences Tools - Options
- Calc - Formula - Separators.

数组不可以嵌套。

示例:

={1;2;3}

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

要输入该数组常量，请在一行中选择三个单元格，然后输入用花括号括起来并以分号分隔的公式 ={1;2;3}，按 Command Ctrl
+Shift+Enter 组合键。

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

一个 2 行且每行有 3 个数值的数组。

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

一个混合数据数组。

=SIN({1;2;3})

作为一个矩阵公式输入，参数为 1、2、3，输出 3 个正弦计算结果。

### 编辑矩阵公式

1. 选择含有矩阵公式的单元格区间或矩阵。要选择整个矩阵，请将单元格光标定位到矩阵区间内，然后按 Command Ctrl
   +/，其中“/”为数字小键盘区的除号键。

2. 按 F2 或将光标至于输入行中，即可进行公式编辑。

3. 更改之后，请按 Command Ctrl
   +Shift+Enter 组合键。

可设置矩阵各部分的格式。例如，可更改字体颜色。只需选择单元格区域，然后根据需要更改其属性即可。

### 复制矩阵公式

1. 选择包含矩阵公式的单元格区域或矩阵。

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

3. 按 Command Ctrl
   +C 组合键将公式复制到编辑栏。

4. 选择一个要插入矩阵公式的单元格区域，然后按 F2 键或将光标置于输入行中。

5. 在选定的位置按 Command Ctrl
   +V 组合键以粘贴公式，然后按 Command Ctrl
   +Shift+Enter 组合键进行确认。至此，选定的区域就包含数组公式了。

### 调整矩阵区域

如果要编辑输出矩阵，请执行以下操作：

1. 选择包含矩阵公式的单元格区域或矩阵。

2. 在选定区域的右下方，将显示一个小图标，使用鼠标单击此图标可放大或缩小此区域。

调整矩阵区域时，不会自动调整矩阵公式。更改的只是将显示结果的区域。

按住 命令 Ctrl
键可创建给定区间矩阵公式的副本。

### 有条件矩阵计算

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

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

| A | B（公式） | B（结果）
1 | 1 | {=IF(A1:A3>0;"yes";"no")} | 是
2 | 0 | {=IF(A1:A3>0;"yes";"no")} | 否
3 | 1 | {=IF(A1:A3>0;"yes";"no")} | 是

以下函数支持强制的矩阵处理：CORREL、COVAR、FORECAST、FTEST、INTERCEPT、MDETERM、MINVERSE、MMULT、MODE、PEARSON、PROB、RSQ、SLOPE、STEYX、SUMPRODUCT、SUMX2MY2、SUMX2PY2、SUMXMY2、TTEST。如果在调用以上其中一个函数时使用区域引用作为参数，则这些函数的行为就与矩阵函数相同。下表提供强制矩阵处理的示例：

| 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

## FREQUENCY

以单列矩阵的形式指示频率分布。该函数用于计算“数据”矩阵中的值数目，这些值位于“分类”矩阵提供的值的范围之内。

### 语法

FREQUENCY(Data; Classes)

Data 表示对要计算的值的引用。

Classes 表示限制值的矩阵。

您可以在此页顶部找到矩阵函数的一般性介绍。

### 示例

在下表中，列 A 中显示了未经排序的测量值。列 B 中包含输入的分类上限值，用于划分列 A 中的数据。根据 B1 中输入的极限值，FREQUENCY 函数返回测量值小于或等于 5 的数目。B2 中的极限值是 10，所以 FREQUENCY 函数返回的第二个结果为测量值大于 5 且小于或等于 10 的数目。B6 中输入的文本 ">25" 仅供参考。

| 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 区域中看到频率计数。

More explanations on top of this page.

## GROWTH

计算矩阵中指数回归点。

### 语法

GROWTH(DataY; DataX; NewDataX; FunctionType)

DataY 表示 Y 数据矩阵。

DataX（可选）表示 X 数据矩阵。

NewDataX （可选择的）表示用于重新计算值的 X 数据矩阵。

FunctionType （可选择的）。如果 FunctionType = 0，函数将以 y = m^x 的方式计算。否则，y = b*m^x 函数将被计算。

In the LibreOffice Calc functions, parameters marked as "optional" can be left out only when no parameter follows. For example, in a function with four parameters, where the last two parameters are marked as "optional", you can leave out parameter 4 or parameters 3 and 4, but you cannot leave out parameter 3 alone.

More explanations on top of this page.

### 示例

该函数返回一个矩阵，其处理方法与其他矩阵函数相同。选择一个用于显示结果的区域，然后选择此函数。选择 DataY。输入其他任意参数，选中矩阵并单击确定。

## 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 的形式。

If linearType is FALSE the straight line found is forced to pass through the origin (the constant a is zero; y = bx). If omitted, linearType defaults to TRUE (the line is not forced through the origin).

If stats is omitted or FALSE only the top line of the statistics table is returned. If TRUE the entire table is returned.

LINEST 返回如下的统计报表（数组），并且必须作为一个数组公式被输入（例如，通过使用 Command Ctrl
+Shift+Return 组合键，而不是只使用 Return 键）。

In the LibreOffice Calc functions, parameters marked as "optional" can be left out only when no parameter follows. For example, in a function with four parameters, where the last two parameters are marked as "optional", you can leave out parameter 4 or parameters 3 and 4, but you cannot leave out parameter 3 alone.

More explanations on top of this page.

### 示例

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

如果 stats = 0，系统将至少返回回归线的斜率及其与 Y 轴的交点。如果 stats 不等于 0，则将显示其他结果。

### 其他 LINEST 结果：

请参阅以下示例：

| A | B | C | D | E | F | G
1 | x1 | x2 | y |  | 残值 |  |
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

linearType 和 stats 都被设置为 1。

只要单击确定，LibreOffice Calc 就会使用 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 值的均方差和。

More explanations on top of this page.

## 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，则只计算回归系数。

In the LibreOffice Calc functions, parameters marked as "optional" can be left out only when no parameter follows. For example, in a function with four parameters, where the last two parameters are marked as "optional", you can leave out parameter 4 or parameters 3 and 4, but you cannot leave out parameter 3 alone.

More explanations on top of this page.

### 示例

请参阅 LINEST。但它不返回平方和。

## MDETERM

返回矩阵行列式的值。该函数在当前单元格中返回一个值；因此无需为计算结果定义一个区域。

### 语法

MDETERM(Array)

Array代表一个要确定其行列式值的方阵。

You can find a general introduction to using Array functions on top of this page.

More explanations on top of this page.

## MINVERSE

返回逆矩阵。

### 语法

MINVERSE(Array)

Array 表示要计算逆矩阵的方阵。

More explanations on top of this page.

### 示例

选择一个正方形区域，然后选择 MINVERSE。选择输出矩阵，然后选择矩阵字段，并单击确定。

## MMULT

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

### 语法

MMULT(Array; Array)

第一个位置的矩阵代表用于计算矩阵乘积的第一个矩阵。

第二个位置的 Array 表示行数相同的第二个矩阵。

More explanations on top of this page.

### 示例

选择一个正方形范围。选择 MMULT 函数。选择第一个矩阵，然后选择第二个矩阵。使用函数向导，选中矩阵复选框。单击确定。输出矩阵将显示在第一个选定的范围内。

## MUNIT

返回给定行列数的单位矩阵。单位矩阵是主对角线元素均等于 1、其他矩阵元素均等于 0 的方阵。

### 语法

MUNIT(Dimensions)

维数是指单位矩阵的大小。

您可以在此页顶部找到矩阵函数的一般性介绍。

### 示例

在电子表格中选择一个正方形区域，例如从 A1 至 E5。

在不取消选择区域的情况下，选择 MUNIT 函数。选中矩阵复选框。输入所需的单位矩阵维数，在本例中为 5，然后单击确定。

您也可以在选定区域的最后一个单元格 (E5) 中输入公式 =Munit(5)，然后按 Shift+Command+Enter Shift+Ctrl+Enter
组合键。

此时将显示一个单位矩阵，区域为 A1:E5。

More explanations on top of this page.

## SUMPRODUCT

将给定矩阵中的对应元素相乘，然后将乘积相加。

### 语法

SUMPRODUCT(Array1; Array2...Array30)

Array1, Array2...Array30 表示其相应元素要执行乘法运算的矩阵。

至少有一个矩阵必须是参数列表的一部分。如果只给定一个矩阵，将对所有矩阵元素求和。

### 示例

| 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 将返回一个数字，无需输入函数作为矩阵函数。

More explanations on top of this page.

## SUMX2MY2

返回两个矩阵中对应值的平方差之和。

### 语法

SUMX2MY2(ArrayX; ArrayY)

ArrayX 表示将元素平方求和的第一个矩阵。

ArrayY 表示元素将平方相减的第二个矩阵。

More explanations on top of this page.

## SUMX2PY2

返回两个矩阵中对应值平方和的总和。

### 语法

SUMX2PY2(ArrayX; ArrayY)

ArrayX 表示将元素平方求和的第一个矩阵。

ArrayY 表示元素将平方相减的第二个矩阵。

More explanations on top of this page.

## SUMXMY2

将两个矩阵中对应值之差的平方值相加。

### 语法

SUMXMY2(ArrayX; ArrayY)

ArrayX 表示元素将被相减并平方的第一个矩阵。

ArrayY 表示元素将被相减并平方的第二个矩阵。

More explanations on top of this page.

## TRANSPOSE

将矩阵的行和列转置。

### 语法

TRANSPOSE(Array)

矩阵代表电子表格中要进行转置的矩阵。

您可以在此页顶部找到矩阵函数使用方法的一般性介绍。

### 示例

在电子表格中，选择能够显示转置后数组的区域。如果原始数组包含 n 行 m 列，那么您选择的区域就至少需要包含 m 行 n 列。然后直接输入公式，选择原始数组并按 Shift+Command+Enter Shift+Ctrl+Enter
组合键。或者，如果您使用的是函数向导，请标记数组复选框。转置后的数组就会出现在选定的目标区域内，并且自动保护，不会被更改。

| A | B | C | D
1 | 2 | 3 | 4 | 5
2 | 6 | 7 | 8 | 9

The above table is 2 rows, 4 columns. In order to transpose it, you must select 4 rows, 2 columns. Assuming you want to transpose the above table to the range A7:B10 (4 rows, 2 columns) you must select the entire range and then enter the following:

TRANSPOSE(A1:D2)

Then make sure to enter it as matrix formula with Shift+Command+Enter Shift+Ctrl+Enter
. The result will be as follows:

| A | B
7 | 2 | 6
8 | 3 | 7
9 | 4 | 8
10 | 5 | 9

## TREND

返回线性拟合的值。

### 语法

TREND(DataY; DataX; NewDataX; LinearType)

DataY 表示 Y 数据矩阵。

DataX（可选）表示 X 数据矩阵。

NewDataX （可选择的）表示用于重新计算值的 X 数据矩阵。

LinearType（可选）。如果 LinearType = 0，则直线当作经过零点计算。否则，还要计算偏移。默认情况下 LinearType <> 0。

In the LibreOffice Calc functions, parameters marked as "optional" can be left out only when no parameter follows. For example, in a function with four parameters, where the last two parameters are marked as "optional", you can leave out parameter 4 or parameters 3 and 4, but you cannot leave out parameter 3 alone.

More explanations on top of this page.

### 示例

选择一个用于显示回归数据的电子表格区域，选择函数，键入输出数据或利用鼠标将其选定，选中矩阵字段，然后单击确定，将显示根据输出数据计算的回归数据。

相关主题

函数清单（根据类别）