# Array Functions

## 什么是矩阵？

 A B C 7 31 33 95 17 2 5 10 50

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

### Implicit intersection of array formulas

You can also create a "normal" formula in which the reference range, such as parameters, indicate an array formula. This formula is also known as "implicit intersection" of array formula. The result is obtained from the intersection of the reference range and the rows or columns in which the formula is found. If there is no intersection or if the range at the intersection covers several rows or columns, a #VALUE! error message appears. The following example illustrates this concept:

In the table above, place the array formula in D1:

{=A1:A3 + 100}

Cells D1, D2, D3 have values 107, 195, 105 respectively.

Insert the formula below in E2, do not enter as array formula.

=A1:A3 + 100

Cells E1 and E3 are empty, Cell E2 has value 195. This is the implicit intersection of array formulas.

Insert formula below in E4, as in E2.

=A1:A3 + 100

Cell E4 display #VALUE!. Row 4 is out of the range A1:A3 of the formula.

### 创建矩阵公式

The cells in a results array are automatically protected against changes. However, you can edit, delete or copy the array formula by selecting the entire array cell range.

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

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

={1;2;3}

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

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

=SIN({1;2;3})

### 编辑矩阵公式

1. Select the cell range or array containing the array formula. To select the whole array, position the cell cursor inside the array range, then press + /, where / is the division key on the numeric keypad.

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

3. 作出变更后，请按「 + Shift + Enter」。

### Deleting Array Formulae

1. Select the cell range or array containing the array formula. To select the whole array, position the cell cursor inside the array range, then press + /, where / is the division key on the numeric keypad.

2. Press Delete to delete the array contents, including the array formula, or press Backspace and this brings up the Delete Contents dialog box. Select Formula or Delete All and click OK.

### 复制矩阵公式

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

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

3. 按「 + C」将公式复制到输入行中。

4. 选择要插入数组公式的单元格区域, 然后按「F2」或将光标放置在输入行中。

5. 在选中空间按「 + V」粘贴公式，并按「 + Shift + Enter」确认。选中范围现在包含数组公式。

### 调整矩阵区域

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

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

### 有条件矩阵计算

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

 A B (公式) B (结果) C (强制的矩阵公式) C (结果) 1 =A1:A2+1 2 =SUMPRODUCT(A1:A2+1) 5 2 =A1:A2+1 3 =SUMPRODUCT(A1:A2+1) 5 =A1:A2+1 #VALUE! =SUMPRODUCT(A1:A2+1) 5

## FREQUENCY

#### 语法

FREQUENCY(Data; Classes)

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

Classes」表示限制值的矩阵。

This function ignores any text or empty cell within a data range. If you suspect wrong results from this function, look for text in the data ranges. To highlight text contents in a data range, use the value highlighting feature.

#### 示例

 A B C 12 5 1 8 10 3 24 15 2 11 20 3 5 25 1 20 >25 1 16 9 7 16 33

## GROWTH

#### 语法

GROWTH(DataY [; [ DataX ] [; [ NewDataX ] [; FunctionType ] ] ])

DataY」表示 Y 数据矩阵。

DataX」 (可选) 表示 X 数据矩阵。

NewDataX」 (可选) 表示用于重新计算值的 X 数据矩阵。

FunctionType」 (可选)。如果 FunctionType = 0，则按公式 y = m^x 计算。否则按 y = b*m^x 计算。

## LINEST

#### 语法

LINEST(data_Y [; data_X [; linearType [; stats]]])

data_X 是相应的单行或列区域，用于指定 x 坐标值。如果省略 data_X」，它就被默认设置为「1, 2, 3, ..., n」。如果有多个变量集合，「data_X」可能就是一个包含相应的多个行或列的区域。

LINEST 返回如下的统计报表 (数组)，并且必须作为数组公式输入 (例如，通过使用「 + Shift + 回车」组合键，而不是只按「回车」键)。

### 其他 LINEST 结果:

 A B C D E F 「x1」 「x2」 「y」 「残值」 4 7 100 「4,17」 -3,48 「82,33」 5 9 105 「5,46」 「10,96」 「9,35」 6 11 104 「0,87」 「5,06」 「#NA」 7 12 108 「13,21」 4 「#NA」 8 15 111 「675,45」 「102,26」 「#NA」 9 17 120 10 19 133

data_Y」是 C2:C8

data_X」是 A2:B8

linearType」和「stats」都被设置为 1。

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

#### 语法

LOGEST(DataY [; DataX [; FunctionType [; Stats]]])

DataY」表示 Y 数据矩阵。

DataX」 (可选) 表示 X 数据矩阵。

FunctionType」 (可选)。如果 Function_Type = 0，则按公式 y = m^x 计算。否则，就按 y = b*m^x 计算。

Stats」 (可选)。如果 Stats=0，则只计算回归系数。

## MDETERM

#### 语法

MDETERM(数组)

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

## MINVERSE

#### 语法

MINVERSE(数组)

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

## MMULT

#### 语法

MMULT(Array 1; Array 2)

Array 1 represents the first array used in the array product.

Array 2 represents the second array with the same number of rows.

#### 示例

Select a square range. Choose the MMULT function. Select Array 1, then select Array 2. Using the Function Wizard, mark the Array check box. Click OK. The output array will appear in the first selected range.

## MUNIT

#### 语法

MUNIT(Dimensions)

## SUMPRODUCT

#### 语法

SUMPRODUCT(Array 1[; Array 2;][...;[Array 255]])

Array 1[; Array 2;][...;[Array 255]] represent arrays whose corresponding elements are to be multiplied.

At least one array must be part of the argument list. If only one array is given, all array elements are summed. If more than one array is given, they must all be the same size.

#### 示例

 A B C D 2 3 4 「5」 6 7 8 9 10 11 12 13

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

SUMPRODUCT 将返回一个数字，无需输入函数作为矩阵函数。

## SUMX2MY2

#### 语法

SUMX2MY2(ArrayX; ArrayY)

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

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

## SUMX2PY2

#### 语法

SUMX2PY2(ArrayX; ArrayY)

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

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

## SUMXMY2

#### 语法

SUMXMY2(ArrayX; ArrayY)

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

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

## TRANSPOSE

TRANSPOSE(数组)

#### 示例

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

TRANSPOSE(A1:D2)

 A B 2 6 3 7 4 8 5 9

## TREND

#### 语法

TREND(DataY [; DataX [; NewDataX [; LinearType]]])

DataY」表示 Y 数据矩阵。

DataX」 (可选) 表示 X 数据矩阵。

NewDataX」 (可选) 表示用于重新计算值的 X 数据矩阵。

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