电子表格函数

本节介绍「电子表格」函数并提供相关示例。

要访问此命令...

插入 - 函数 - 类别「电子表格


ERROR.TYPE

返回一个表示特定「错误」类型的数字, 如果没有错误, 则返回错误值「#N/A」

STYLE

Applies a style to the cell containing the formula.

ADDRESS

按照指定行编号和列编号,返回文字格式的单元格引用地址。 您可以自己决定是采用绝对地址 (如 $A$1) 还是相对地址 (如 A1) 或是综合型地址 (A$1 或 $A1) 来表示引用的单元格,还可以指定工作表的名称。

为了协同工作,ADDRESS 和 INDIRECT 函数支持一个可选参数,以指定是使用 R1C1 地址符号还是惯用的 A1 符号。

在 ADDRESS 中,该参数被插入到第四参数的位置,可选的工作表名称参数移至第五位。

在 INDIRECT 中,该参数被设置为第二参数。

在两个函数中,如果该参数值为 0,使用 R1C1 符号。如果未给定该参数值或值不为 0,则使用 A1 符号。

假设使用的是 R1C1 符号,ADDRESS 使用感叹号 '!' 作为工作表名称分隔符返回地址字符串,INDIRECT 就把感叹号当做工作表名称分隔符。如果使用的是 A1 符号,两个函数都使用圆点 '.' 作为工作表名称分隔符。

当使用 ODF 1.0/1.1 格式打开文档时,原本将工作表名称作为第四参数的 ADDRESS 函数会将其转换为第五参数。一个新的第四参数会被插入,值为 1。

当使用 ODF 1.0/1.1 格式存储文档时,如果 ADDRESS 函数有第四参数,该参数将会被删除。

note

如果 ADDRESS 函数新设置的第四参数值为 0 的话,请不要使用旧的 ODF 1.0/1.1 格式保存电子表格。


note

INDIRECT 函数会被保存,但不会被转换为 ODF 1.0/1.1 格式。如果存在第二参数,则对于该函数,较旧版本的 Calc 会返回错误。


语法

ADDRESS(Row; Column [; Abs [; A1 [; "Sheet"]]])

Row」表示引用的单元格的行号

Column」表示引用的单元格的列号 (是数字,而非字母)

Abs」确定引用类型:

1: absolute ($A$1)

2: 行号采用绝对引用;列号采用相对引用(A$1)

3: 行号采用相对引用;列号采用绝对引用($A1)

4: 相对引用(A1)

A1」 (可选的) - 如果设置为 0,使用 R1C1 符号。如果省略该参数,或被设置为其他非 0 的值,则使用 A1 符号。

Sheet」代表工作表的名称。必须放在双引号中。

示例:

=ADDRESS(1;1;2;"Sheet2")」返回: Sheet2.A$1

如果上述公式位于当前工作表的 B2 单元格,且工作表「sheet 2」中的单元格 A1 包含数值「-6」,通过输入「=ABS(INDIRECT(B2))」,可间接引用使用函数的 B2 单元格。结果是单元格 B2 中给出的单元格引用的绝对值,即等于 6。

AREAS

返回多重区域中含有的单个区域的数目。一个区域可以由多个邻近的单元格组成,也可以由一个单元格组成。

此函数需要一个单独的参数。如果您声明了多个范围,则必须将它们括在附加的括号中。可以使用分号 (;) 作为分隔符输入多个范围,但此符号会自动转换为波浪号 (~) 运算符。波浪号用于合并范围。

语法

AREAS(引用)

Reference 表示对一个单元格或者一个单元格区域的引用。

示例

=AREAS((A1:B3;F2;G1))」返回 3,因为它引用了三个单元格和/或区域。此项在输入后会转换为 =AREAS((A1:B3~F2~G1))。

=AREAS(All)」,如果在「数据 - 定义范围」定义了名称为「All」的区域,则返回 1。

CHOOSE

使用索引从多达 30 个值的列表中返回一个值。

语法

CHOOSE(Index; Value 1 [; Value 2 [; ... [; Value 30]]])

Index」是某一个1至30的之中的要反馈数值的引用数。

Value 1, Value 2, ..., Value 30 is the list of values entered as a reference to a cell or as individual values.

示例

例如,「=CHOOSE(A1;B1;B2;B3;"Today";"Yesterday";"Tomorrow")」,若 A1 = 2,返回单元格 B2 的内容;若 A1 = 4,函数返回文本 "Today"。

COLUMN

Returns the column number of a cell reference. If the reference is a cell the column number of the cell is returned; if the parameter is a cell area, the corresponding column numbers are returned in a single-row array if the formula is entered as an array formula. If the COLUMN function with an area reference parameter is not used for an array formula, only the column number of the first cell within the area is determined.

语法

COLUMN([Reference])

reference」是一个要获得其列号的单元格或单元格区域。

在省略对参数 reference 的输入时,函数反馈的便是公式所在处的单元格列号(LibreOffice Calc 会自动引用光标所在之处的单元格)。

示例

=COLUMNS(A1)」等于 1。A 列是表格中的第一列。

=COLUMNS(C3:E3)」等于 3。C 列是表格中的第三列。

=COLUMN(D3:G10)」返回 4,因为 D 列是表格中的第四列,并且函数 COLUMN 不能用作数组公式。 (在这种情况下,数组的第一个数值被作为结果。)

{=COLUMN(B2:B7)}」和「=COLUMN(B2:B7)」都返回 2,因为引用仅包含在表格中作为第二列的 B 列。由于单列区域仅有一个列编号,所以公式是否作为数组公式使用对结果没有影响。

如果在列 C 中输入公式,则「=COLUMN()」返回 3。

如果 "Rabbit" 是命名的区域 (C1:D3),则「{=COLUMN(Rabbit)}」返回单行数组 (3, 4)。

COLUMNS

返回给定引用中的列数。

语法

COLUMNS(数组)

Array」用于指定要计算其列数的单元格区域,该参数也可以是一个单元格。

示例

=COLUMNS(B5)」返回 1,因为单元格仅包含 1 列。

=COLUMNS(A1:C5)」等于 3。该引用包含 3 列。

=COLUMNS(Rabbit)」,如果「Rabbit」为命名区域 (C1:D3),则返回 2。

DDE

返回一个基于 DDE 的链接。如果链接区域或区域中的内容发生变化,公式的结果也会相应地发生变化。您必须重新装入工作表或选择「编辑 - 链接」来查看更新后的链接。不支持跨平台链接,例如从运行于 Windows 计算机上安装的「LibreOffice」链接到 Linux 计算机上创建的文档。

语法

DDE("Server"; "File"; "Range" [; Mode])

Server」是服务器应用程序的名称。「LibreOffice」应用程序的服务器名称为「soffice」。

file」是具备完整路径的文件名。

range」是一个要读取数据的区域。

mode」是一个可选参数,用来控制 DDE 服务器中的数据与数字的转换方式。

Mode

Effect

0 或空缺

采用「默认」单元格样式中的数字格式

1

采用英语(美国)标准格式来表示数据

2

数据只是当作文字采用,而不转化成数字


示例

=DDE("soffice";"c:\office\document\data1.ods";"sheet1.A1")」读取 LibreOffice Calc 电子表格 data1.ods 工作表 Sheet1 中的单元格 A1 的内容。

=DDE("soffice";"c:\office\document\motto.odt";"Today's motto") 返回公式所在的单元格内的当日格言。您必须事先在包含格言的 motto.odt 文档中输入一条格言,并且其所在行是指定的区域当日格言」的第一行 (在 LibreOffice Writer 的「插入 - 区域」)。如果在 LibreOffice Writer 文档中的格言被修改 (或保存),则 LibreOffice Calc 文档中所有定义了 DDE 链接的单元格内均会显示更改后的当日格言。

ERRORTYPE

返回与不同单元格中出现的错误值相对应的数字。可以利用此数字生成错误消息文本。

如果发生错误,此函数将返回一个逻辑值或数字值。

note

如果点击含有错误值的单元格,预设的错误码就会显示在「LibreOffice」状态栏中。


语法

ERRORTYPE(引用)

reference」是一个出现错误值的单元格引用。

示例

如果单元格 A1 显示 Err:518,该函数「=ERRORTYPE(A1)」返回数字 518。

Technical information

This function is not part of the Open Document Format for Office Applications (OpenDocument) Version 1.3. Part 4: Recalculated Formula (OpenFormula) Format standard. The name space is

ORG.OPENOFFICE.ERRORTYPE

GETPIVOTDATA

GETPIVOTDATA 函数从透视表中返回一个结果数值。因为数值是通过 Field 和 Item 名称寻址计算的,所以即使透视表的布局更改,数值仍然有效。

语法

可以使用两种不同的语法定义:

GETPIVOTDATA(TargetField; pivot table[; Field 1; Item 1][; ... [Field 126; Item 126]])

or

GETPIVOTDATA(pivot table; Constraints)

如果精确给出两个参数,且其中第一个参数是单元格或单元格区域引用,则采用的是第二语法。其他全部情况则采用的是第一语法。「函数向导」显示第一语法。

First Syntax

TargetField」是一个字符串,选择 透视表的某个数据字段。字符串可以是数据源列的名称,或者在表格中显示的数据字段名称 (如 "Sum - Sales")。

透视表」是单元格或单元格区域的引用,它位于透视表内或包含透视表。如果单元格区域包含几个透视表,则使用最后创建的表格。

如果「Field n / Item n」对没有给出,则返回总计。否则,每一对增加一个结果必须满足的约束。「Field n」是透视表中某个字段的名称。「Item n」是此字段中某个项目的名称。

如果透视表中包含唯一的满足全部约束的结果,或者某分类汇总结果概括了全部匹配值,则返回此结果。如果没有匹配的结果,或者有些匹配结果但没有分类汇总结果,则返回错误。这些条件应用于包含在透视表中的结果。

如果源数据包含被透视表的设置隐藏的条目,则忽略它们。Field/Item 对的顺序不重要。Field 和 Item 名称不区分字母大小写。

If no constraint for a filter is given, the field's selected value is implicitly used. If a constraint for a filter is given, it must match the field's selected value, or an error is returned. Filters are the fields at the top left of a pivot table, populated using the "Filters" area of the pivot table layout dialog. From each filter, an item (value) can be selected, which means only that item is included in the calculation.

透视表中的分类汇总值只有使用了函数 "auto" (除非在约束中指定,参阅下面的「第二语法」) 才能使用。

Second Syntax

透视表」与第一语法中的含义相同。

Constraints」是一个用空格分隔的列表。条目可以被引号 (单引号) 引起。整个字符串必须用引号 (双引号) 引起,除非您引用的字符串来自其他单元格。

条目之一可以作为数据字段名称。如果透视表只包含一个数据字段,则数据字段名可以被省略,否则必须出现。

其他每个条目以「Field[Item]」形式指定约束 (使用字符 [ 与 ]),或者,当项目名称在用于透视表的所有字段中唯一时,简化为「Item」。

函数名称能够以「Field[Item;Function]」的形式添加,这将使得约束只能匹配使用了此函数的分类汇总值。可能的函数名为 Sum、Count、Average、Max、Min、Product、Count (仅适用于数字) 、StDev (抽样) 、StDevP (总体样本) 、Var (抽样) 和 VarP (总体样本),不区分大小写。

HLOOKUP

在选中区域的下方搜索某个数值和对单元格的引用。此函数检验矩阵的第一行是否含有特定数值,然后返回由「Index」指定的矩阵行中、与搜索到的数值在同一列中的数值。

The search supports wildcards or regular expressions. With regular expressions enabled, you can enter "all.*", for example to find the first location of "all" followed by any characters. If you want to search for a text that is also a regular expression, you must either precede every regular expression metacharacter or operator with a "\" character, or enclose the text into \Q...\E. You can switch the automatic evaluation of wildcards or regular expression on and off in - LibreOffice Calc - Calculate.

warning

When using functions where one or more arguments are search criteria strings that represents a regular expression, the first attempt is to convert the string criteria to numbers. For example, ".0" will convert to 0.0 and so on. If successful, the match will not be a regular expression match but a numeric match. However, when switching to a locale where the decimal separator is not the dot makes the regular expression conversion work. To force the evaluation of the regular expression instead of a numeric expression, use some expression that can not be misread as numeric, such as ".[0]" or ".\0" or "(?i).0".


语法

HLOOKUP(Lookup; Array; Index [; SortedRangeLookup])

For an explanation on the parameters, see: VLOOKUP (columns and rows are exchanged)

处理空白单元格

示例

Suppose we have built a small database table occupying the cell range A1:DO4 and containing basic information about 118 chemical elements. The first column contains the row headings “Element”, “Symbol”, “Atomic Number”, and “Relative Atomic Mass”. Subsequent columns contain the relevant information for each of the elements, ordered left to right by atomic number. For example, cells B1:B4 contain “Hydrogen”, “H”, “1” and “1.008”, while cells DO1:DO4 contain “Oganesson”, “Og”, “118”, and “294”.

A

B

C

D

...

DO

1

Element

Hydrogen

Helium

Lithium

...

Oganesson

2

Symbol

H

He

Li

...

Og

3

Atomic Number

1

2

3

...

118

4

Relative Atomic Mass

1.008

4.0026

6.94

...

294


=HLOOKUP("Lead"; $A$1:$DO$4; 2; 0) returns “Pb”, the symbol for lead.

=HLOOKUP("Gold"; $A$1:$DO$4; 3; 0) returns 79, the atomic number for gold.

=HLOOKUP("Carbon"; $A$1:$DO$4; 4; 0) returns 12.011, the relative atomic mass of carbon.

HYPERLINK

点击包含 HYPERLINK 函数的单元格时,超链接将会打开。

If you use the optional CellValue parameter, the formula locates the URL, and then displays the text or number.

tip

要用键盘打开超链接的单元格,请选择该单元格,按 F2 进入「编辑」模式,在超链接前面移动光标,按 Shift+F10,然后选择「打开超链接」。


语法

HYPERLINK("URL" [; CellValue])

URL specifies the link target. The optional CellValue parameter is the text or a number that is displayed in the cell and will be returned as the result. If the CellValue parameter is not specified, the URL is displayed in the cell text and will be returned as the result.

对于空单元格和矩阵元素返回数字 0。

示例

=HYPERLINK("http://www.example.org") displays the text "http://www.example.org" in the cell and executes the hyperlink http://www.example.org when clicked.

=HYPERLINK("http://www.example.org";"Click here") displays the text "Click here" in the cell and executes the hyperlink http://www.example.org when clicked.

=HYPERLINK("http://www.example.org";12345) displays the number 12345 and executes the hyperlink http://www.example.org when clicked.

=HYPERLINK($B4) where cell B4 contains http://www.example.org. The function adds http://www.example.org to the URL of the hyperlink cell and returns the same text which is used as formula result.

=HYPERLINK("http://www.";"Click ") & "example.org" displays the text Click example.org in the cell and executes the hyperlink http://www.example.org when clicked.

=HYPERLINK("#Sheet1.A1";"Go to top") displays the text Go to top and jumps to cell Sheet1.A1 in this document.

=HYPERLINK("file:///C:/writer.odt#Specification";"Go to Writer bookmark") displays the text "Go to Writer bookmark", loads the specified text document and jumps to bookmark "Specification".

=HYPERLINK("file:///C:/Documents/";"Open Documents folder") displays the text "Open Documents folder" and shows the folder contents using the standard file manager in your operating system.

INDEX

INDEX returns a reference, a value or an array of values from a reference range, specified by row and column index number or array of row and array of columns index numbers, and an optional range index.

INDEX() returns a reference if the argument is one or more references. When used in a cell in the form =INDEX(), the reference is resolved and the values displayed. When INDEX() is used in arguments of other functions, =FUNCTION(INDEX()...), the function gets the reference passed that was returned by INDEX(). Returning a reference is different from returning an array of values for functions that handles them differently.

语法

INDEX(Reference [; [Row] [; [Column] [; Range]]])

Reference is a reference, entered either directly or by specifying a range name. If the reference consists of multiple ranges, you must enclose the list of references or range names in parentheses, or either use the tilde (~) range concatenation operator or define a named range with multiple areas.

Row (optional) represents the row or the array of row indexes of the reference range, for which to return a value. In case of zero or omitted (no specific row) all referenced rows are returned.

Column (optional) represents the column or array of column indexes of the reference range, for which to return a value. In case of zero or omitted (no specific column) all referenced columns are returned.

note

If Row, Column or both are omitted or defined as arrays of indexes, the INDEX function must be entered as an array function.


Range (optional) represents the index of the subrange if referring to a multiple range, default is 1.

示例

{=INDEX({1,3,5;7,9,10},{2;1},1)} return a 2 row array containing 7 and 1. The row index {2;1} pick row 2 then row 1. The columns index 1 picks the first column.

{=INDEX(D3:G12,{1;2;3;4},{3,1})} return a 4 rows by 2 columns array. The row index array {1;2;3;4} picks rows 3 to 6 and {3;1} picks the third (F) and first column (D). Columns 1 and 3 of the source reference are swapped in the resulting array.

=INDEX(Prices;4;1)」返回通过菜单「数据 - 定义所定义的数据库区域 Prices」中的第 4 行第 1 列的值。

=INDEX(SumX;4;1)」返回通过菜单「插入 - 命名区域与表达式 - 定义所定义的区域 SumX」中第 4 行第 1 列的值。

{=INDEX(A1:B6;1)} returns the values of the first row of A1:B6. Enter the formula as an array formula.

{=INDEX(A1:B6;0;1)} returns the values of the first column of A1:B6. Enter the formula as an array formula.

=INDEX(A1:B6;1;1)」的结果是 A1:B6 区域中左上角单元格处的数值。

{=INDEX((A1:B6;C1:D6);0;0;2)} returns the values of the second range C1:D6 of the multiple range. Enter the formula as an array formula.

INDIRECT

返回文本字符串指定的「引用」。此函数也可用于返回相应字符串的区域。

This function is always recalculated whenever a recalculation occurs.

为了协同工作,ADDRESS 和 INDIRECT 函数支持一个可选参数,以指定是使用 R1C1 地址符号还是惯用的 A1 符号。

在 ADDRESS 中,该参数被插入到第四参数的位置,可选的工作表名称参数移至第五位。

在 INDIRECT 中,该参数被设置为第二参数。

在两个函数中,如果该参数值为 0,使用 R1C1 符号。如果未给定该参数值或值不为 0,则使用 A1 符号。

假设使用的是 R1C1 符号,ADDRESS 使用感叹号 '!' 作为工作表名称分隔符返回地址字符串,INDIRECT 就把感叹号当做工作表名称分隔符。如果使用的是 A1 符号,两个函数都使用圆点 '.' 作为工作表名称分隔符。

当使用 ODF 1.0/1.1 格式打开文档时,原本将工作表名称作为第四参数的 ADDRESS 函数会将其转换为第五参数。一个新的第四参数会被插入,值为 1。

当使用 ODF 1.0/1.1 格式存储文档时,如果 ADDRESS 函数有第四参数,该参数将会被删除。

note

如果 ADDRESS 函数新设置的第四参数值为 0 的话,请不要使用旧的 ODF 1.0/1.1 格式保存电子表格。


note

INDIRECT 函数会被保存,但不会被转换为 ODF 1.0/1.1 格式。如果存在第二参数,则对于该函数,较旧版本的 Calc 会返回错误。


语法

INDIRECT(Ref [; A1])

Ref」表示对要返回其内容的单元格或区域的引用 (以文字格式表示)。

A1」 (可选的) - 如果设置为 0,使用 R1C1 符号。如果省略该参数,或被设置为其他非 0 的值,则使用 A1 符号。

note

如果您打开了一个使用字符串函数计算间接地址的 Excel 电子表格,则不会自动转换工作表地址。例如,INDIRECT("[filename]sheetname!"&B1) 中的 Excel 地址不会被转换为 INDIRECT("filename#sheetname."&B1) 中的 Calc 地址。


示例

如果 A1 引用的是 C108,而单元格 C108 内含有数值「100」,则「=INDIRECT(A1)」等于 100。

=SUM(INDIRECT("a1:" & ADDRESS(1;3)))」计算单元格 A1 与地址定义为第 1 行第 3 列的单元格之间的单元格总和。即计算区域 A1:C1 的总和。

LOOKUP

从一行或一列的范围返回单元格内容。或者,可以返回不同列和行的指定值 (相同索引)。与 VLOOKUPHLOOKUP 相反,查找和结果矢量可在不同的位置;它们不必相邻。另外,必须对 LOOKUP 的查找矢量进行排序,否则不会返回任何有用的结果。

note

如果 LOOKUP 找不到搜索条件,将与小于或等于搜索条件的搜索矢量中的最大值匹配。


The search supports wildcards or regular expressions. With regular expressions enabled, you can enter "all.*", for example to find the first location of "all" followed by any characters. If you want to search for a text that is also a regular expression, you must either precede every regular expression metacharacter or operator with a "\" character, or enclose the text into \Q...\E. You can switch the automatic evaluation of wildcards or regular expression on and off in - LibreOffice Calc - Calculate.

warning

When using functions where one or more arguments are search criteria strings that represents a regular expression, the first attempt is to convert the string criteria to numbers. For example, ".0" will convert to 0.0 and so on. If successful, the match will not be a regular expression match but a numeric match. However, when switching to a locale where the decimal separator is not the dot makes the regular expression conversion work. To force the evaluation of the regular expression instead of a numeric expression, use some expression that can not be misread as numeric, such as ".[0]" or ".\0" or "(?i).0".


语法

LOOKUP(Lookup; SearchVector [; ResultVector])

Lookup is the value of any type to be looked for; entered either directly or as a reference.

搜索范围」是要查找的单行或单列区域。

结果范围」是另一个单行或单列区域,用于存放函数的结果。结果是结果向量单元格中的与在搜索向量中找到的向量具有相同的索引。

处理空白单元格

示例

=LOOKUP(A1;D1:D100;F1:F100)」根据单元格 A1 中输入的数值,在区域 D1:D100 查找相应的单元格。如果找到匹配的单元格,则确定其索引。例如,如果找到的是该区域中第十二个单元格,则将第十二个单元格的内容作为函数值返回到结果向量中。

MATCH

返回与指定值匹配的项在矩阵中的相对位置。此函数以数字形式返回找到的数值在 lookup_array 中的位置。

语法

MATCH(Search; LookupArray [; Type])

Search is the value which is to be searched for in the single-row or single-column array.

LookupArray」是查找的引用。查找数组可以是单行或单列,或者是单行或单列的一部分。

Type」可取值为 1, 0, 或 -1。如果 Type = 1 或未设置这个可选参数,则认为查找矩阵的第一列按升序排列。如果 Type = -1,则认为列按降序排列。这与 Microsoft Excel 中相同的函数一致。

如果 type=0,仅查找完全匹配的内容。如果查找条件多次找到,则函数返回第一个匹配值的索引。只有在 Type = 0 时才允许通过正则表达式 (如果在计算选项中启用) 或通配符 (如果在计算选项中启用) 进行搜索。

If Type = 1 or the third parameter is missing, the index of the last value that is smaller or equal to the search criterion is returned. For Type = -1, the index of the last value that is larger or equal is returned.

The search supports wildcards or regular expressions. With regular expressions enabled, you can enter "all.*", for example to find the first location of "all" followed by any characters. If you want to search for a text that is also a regular expression, you must either precede every regular expression metacharacter or operator with a "\" character, or enclose the text into \Q...\E. You can switch the automatic evaluation of wildcards or regular expression on and off in - LibreOffice Calc - Calculate.

warning

When using functions where one or more arguments are search criteria strings that represents a regular expression, the first attempt is to convert the string criteria to numbers. For example, ".0" will convert to 0.0 and so on. If successful, the match will not be a regular expression match but a numeric match. However, when switching to a locale where the decimal separator is not the dot makes the regular expression conversion work. To force the evaluation of the regular expression instead of a numeric expression, use some expression that can not be misread as numeric, such as ".[0]" or ".\0" or "(?i).0".


示例

=MATCH(200;D1:D100)」在按列 D 排序的 D1:D100 区域中查找数值 200。一旦找到这个数值,就会返回该数值所在的行号。如果在搜寻该列的过程中发现了一个更大的数值,将返回它前一行的编号。

OFFSET

返回从指定引用点偏移特定行数及列数的单元格值。

This function is always recalculated whenever a recalculation occurs.

语法

OFFSET(Reference; Rows; Columns [; Height [; Width]])

Reference」是函数查找新引用点的位置。

Rows」是单元格向上 (负值) 或向下修正的行数。使用 0 可保持在当前行不变。

Columns」是引用向左 (负值) 或向右移动的列数。使用 0 可保持在当前列不变

Height」 (可选) 是从新引用位置开始的区域的垂直高度。

Width」 (可选) 是从新引用位置开始的区域的水平宽度。

参数「Rows」和「Columns」不能为零或者以负数表示的行或列。

参数「Height」和「Width」不能为零或者以负数表示的行或列。

在 LibreOffice Calc 函数中,只有其后没有参数时,才可省略标记为「可选」的参数。例如,在带有四个参数的函数中,最后两个参数标记为「可选」时,可省略参数 4 或参数 3 和 4,但不能单独省略参数 3。

示例

=OFFSET(A1;2;2) 返回单元格 C3 的值 (A1 向下移动两行两列)。如果 C3 包含数值 100」,此函数返回 100。

=OFFSET(B2:C3;1;1)」返回从 B2:C3 向下移动一行、向右移动一列后的引用区域 (C3:D4)。

=OFFSET(B2:C3;-1;-1)」返回从 B2:C3 向上移动一行、向左移动一列后的引用区域 (A1:B2)。

=OFFSET(B2:C3;0;0;3;4)」返回从 B2:C3 开始,大小为 3 行 4 列 的引用区域 (B2:E4)。

=OFFSET(B2:C3;1;0;3;4)」返回从 B2:C3 向下偏移一行,大小为 3 行 4 列 的引用区域 (B2:E4)。

=SUM(OFFSET(A1;2;2;5;6))」确定以单元格 C3 为出发点,共包含五行六列的单元格区域,即单元格区域 C3:H7。

note

If Width or Height are given, the OFFSET function returns a cell range reference. If Reference is a single cell reference and both Width and Height are omitted, a single cell reference is returned.


ROW

Returns the row number of a cell reference. If the reference is a cell, it returns the row number of the cell. If the reference is a cell range, it returns the corresponding row numbers in a one-column Array if the formula is entered as an array formula. If the ROW function with a range reference is not used in an array formula, only the row number of the first range cell will be returned.

语法

ROW([Reference])

reference」是指一个单元格、一个区域或一个区域的名称。

如果您没有指定引用,将找到输入公式的单元格的行号。LibreOffice Calc 自动在当前单元格中设置引用。

示例

=ROW(B3)」返回 3,因为引用表示表格中的第三行。

{=ROW(D5:D8)}」返回单列数组 (5, 6, 7, 8),因为指定的引用包含行 5 至 8。

=ROW(D5:D8)」返回 5,因为函数 ROW 未作为数组公式使用,所以只返回引用的第一行的行号。

{=ROW(A1:E1)}」和「=ROW(A1:E1)」都返回 1,因为引用仅包含在表格中作为第一列的第一行。 (由于单行区域只有一个行号,所以是否作为数组公式使用对结果没有影响。)

如果在行 3 处输入此公式,则「=ROW()」返回 3。

如果 "Rabbit" 是命名的区域 (C1:D3),则「{=ROW(Rabbit)}」返回单列数组 (1, 2, 3)。

ROWS

返回引用或数组中的行数。

语法

ROWS(数组)

Array」是一个已确定总行数的引用或者命名区域。

示例

=Rows(B5)」返回 1,因为一个单元格仅包含一行。

=ROWS(A10:B12)」返回 3。

如果 "Rabbit" 是命名的区域 (C1:D3),则「=ROWS(Rabbit)」返回 3。

SHEET

Returns the sheet number of either a reference or a string representing a sheet name. If you do not enter any parameters, the result is the sheet number of the spreadsheet containing the formula.

语法

SHEET([Reference])

Reference」是一个可选参数,是对单元格、区域或工作表名称字符串的引用。

示例

=SHEET(Sheet2.A1) returns 2 if Sheet2 is the second sheet in the spreadsheet document.

=SHEET("Sheet3") returns 3 if Sheet3 is the third sheet in the spreadsheet document.

SHEETS

确定引用中工作表的数目。 如果不输入任何参数,将返回当前文档中的工作表数目。

语法

SHEETS([Reference])

Reference」是对工作表或区域的引用,这是一个可选参数。

示例

如果工作表依次为 Sheet1、Sheet2 和 Sheet3,则「=SHEETS(Sheet1.A1:Sheet3.G12)」返回 3。

VLOOKUP

Vertical search with reference to adjacent cells to the right. This function checks if a specific value is contained in the first column of an array. The function then returns the value in the same row of the column named by Index. If the Sorted parameter is omitted or set to TRUE or one, it is assumed that the data is sorted in ascending order. In this case, if the exact Lookup is not found, the last value that is smaller than the criterion will be returned. If Sorted is set to FALSE or zero, an exact match must be found, otherwise the error Error: Value Not Available will be the result. Thus with a value of zero the data does not need to be sorted in ascending order.

The search supports wildcards or regular expressions. With regular expressions enabled, you can enter "all.*", for example to find the first location of "all" followed by any characters. If you want to search for a text that is also a regular expression, you must either precede every regular expression metacharacter or operator with a "\" character, or enclose the text into \Q...\E. You can switch the automatic evaluation of wildcards or regular expression on and off in - LibreOffice Calc - Calculate.

warning

When using functions where one or more arguments are search criteria strings that represents a regular expression, the first attempt is to convert the string criteria to numbers. For example, ".0" will convert to 0.0 and so on. If successful, the match will not be a regular expression match but a numeric match. However, when switching to a locale where the decimal separator is not the dot makes the regular expression conversion work. To force the evaluation of the regular expression instead of a numeric expression, use some expression that can not be misread as numeric, such as ".[0]" or ".\0" or "(?i).0".


语法

=VLOOKUP(Lookup; Array; Index [; SortedRangeLookup])

Lookup is the value of any type looked for in the first column of the array.

数组」是引用, 它包含的列数至少为「索引」 参数传递的数字。

Index」是数组中的列编号,该数组包含要返回的数值。第一列编号为 1。

SortedRangeLookup is an optional parameter that indicates whether the first column in the array contains range boundaries instead of plain values. In this mode, the lookup returns the value in the row with first column having value equal to or less than Lookup. E.g., it could contain dates when some tax value had been changed, and so the values represent starting dates of a period when a specific tax value was effective. Thus, searching for a date that is absent in the first array column, but falls between some existing boundary dates, would give the lower of them, allowing to find out the data being effective to the searched date. Enter the Boolean value FALSE or zero if the first column is not a range boundary list. When this parameter is TRUE or not given, the first column in the array must be sorted in ascending order. Sorted columns can be searched much faster and the function always returns a value, even if the search value was not matched exactly, if it is greater than the lowest value of the sorted list. In unsorted lists, the search value must be matched exactly. Otherwise the function will return #N/A with message: Error: Value Not Available.

处理空白单元格

示例

在单元格 A1 处输入菜单中一道菜的编号后,在相邻的单元格 (B1) 处立刻以文字形式显示出这道菜的名称。单元格 D1:E100 数组中含有每道菜的编号与名称的对应关系。D1 包含「100」,E1 包含名称「蔬菜汤」,100 道菜都具有这样的格式。列 D 中的编号按升序排列,因此可以省略可选参数「已排序」。

请在 B1 处输入下列公式:

=VLOOKUP(A1;D1:E100;2)

这样一旦您在单元格A1处输入一道菜的号码后,单元格B1处便会显示这道菜的名称(菜的名称在单元格区域 D1:E100 的第 2 列内)。输入一个在单元格区域 D1:E100 内不存在的号码,单元格B1处显示的便是小于等于此号码的最大值。如果您不希望这种近似匹配,可在公式的可选参数sort order处输入逻辑值FALSE,这样在输入一个单元格区域 D1:E100 内不存在的号码时,函数便会反馈一个错误值。

请支持我们!