电子表格函数

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

要访问此命令...

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


ERROR.TYPE

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

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 函数有第四参数,该参数将会被删除。

批注图标

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


批注图标

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


语法

ADDRESS(Row; Column; Abs; A1; )

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(索引; 值1; ...; 值30)

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

值1, 值2, ..., 值30」是一系列数值,可以是单元格的引用,也可以是直接输入的数值。

示例

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

COLUMN

返回单元格引用的列号。 如果引用的是一个单元格,函数返回的是单元格的列号;如果参数是一个单元格区域,则以一个单行矩阵来返回相应的列号。如果函数公式作为矩阵公式使用。 如果函数 COLUMN 引用的是一个单元格范围,且函数不是作为矩阵公式使用的,则只返回范围中第一个单元格的列号。

语法

COLUMN(引用)

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 服务器中的数据与数字的转换方式。

模式

效果

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

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

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

批注图标

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


语法

ERRORTYPE(引用)

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

示例

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

GETPIVOTDATA

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

语法

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

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

GETPIVOTDATA(pivot table; Constraints)

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

语法

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

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

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

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

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

如果没有给定某个页面字段的约束,则字段的选中值被隐式使用。如果给定某个页面字段的约束,则必须与字段的选中值匹配,否则返回错误。页面字段是位于透视表左上方的字段,用于填充「透视表版式」对话框中的「页面字段」区域。对于每一个页面字段,可以选中某一项 (值),表示只有该项包含在计算中。

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

语法

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

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

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

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

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

HLOOKUP

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

查找支持正则表达式。例如,您可以输入「all.*」来查找起始部分为「all」且后跟任意字符的内容首次出现的位置。如果您想要查找的文本同时也是正则表达式的关键字,则您必须在每个字符前面加上一个「\」字符。您可以在「 - LibreOffice Calc - 计算」中切换正则表达式自动求值功能的打开和关闭状态。

语法

HLOOKUP(搜索条件; 数组; 索引; 已排序)

请参阅 VLOOKUP (交换列和行)

处理空白单元格

HYPERLINK

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

如果使用可选的「cell text」参数,公式会查找 URL,然后显示文本或数字。

提示图标

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


语法

HYPERLINK("URL") 或 HYPERLINK("URL"; "CellText")

URL 指定链接目标。可选的参数「CellText」是单元格中显示的文本和函数结果。如果未指定参数「CellText」,URL」将显示在单元格文本和函数结果中。

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

示例

=HYPERLINK("http://www.example.org")」在单元格中显示文本 "http://www.example.org",并在点击后执行超链接 "http://www.example.org"。

=HYPERLINK("http://www.example.org";"点击此处")」在单元格中显示文本 "点击此处",并在点击后执行超链接 "http://www.example.org"。

=HYPERLINK("http://www.example.org";12345) 显示数字 12345 并在点击时执行超链接 http://www.example.org。

=HYPERLINK($B4) 其中单元格 B4 包含http://www.example.org」。该函数将 "http://www.example.org" 添加到超链接单元格的 URL,并返回用作公式结果的相同文本。

=HYPERLINK("http://www.";"点击 ") & "example.org"」在单元格中显示文本「点击 example.org」,并在点击后执行超链接 http://www.example.org。

=HYPERLINK("#Sheet1.A1";"跳至顶部")」显示文字「跳至顶部」,并跳转到此文档的工作表 1 中的单元格 A1。

=HYPERLINK("file:///C:/writer.odt#Specification";"跳至 Writer 书签")」显示文本「跳至 Writer 书签」,载入指定的文本文档,并跳转到书签「Specification」。

INDEX

INDEX 返回子区域,该区域由行号和列号或者可选的区域索引指定。依赖于上下文,INDEX 返回一个引用或内容。

语法

INDEX(Reference; Row; Column; Range)

Reference」是一个单元格引用,可以直接输入,也可以通过指定区域名称来输入。如果该引用含有多重区域,则必须用圆括号将引用或区域名称括起来。

Row」 (可选的) 代表所引用区域的行索引,将为该行返回一个值。若为零 (未指定行),则返回所有引用行。

Column」 (可选) 代表所引用区域的列索引,将为该列标返回一个值。若为零 (未指定列),则返回所有引用的列。

如果引用了多重区域,则「区域」(可选) 代表子区域的索引。

示例

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

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

=INDEX(A1:B6;1)」返回 A1:B6 中第一行的引用。

=INDEX(A1:B6;0;1)」返回 A1:B6 中第一列的引用。

=INDEX((multi);4;1) 显示(多)域的第四行与第一列包含的数值,该域已在「插入 - 命名区域与表达式 - 定义」命名为「multi」。多重域可能包含数个矩形域,均有第四行与第一列。如果您现在打算调用此多重域的第二块,将数字 2」作为「range」参数输入。

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

=INDEX((multi);0;0;2)」返回多个区域中的第二个区域的引用。

INDIRECT

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

为了协同工作,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 函数有第四参数,该参数将会被删除。

批注图标

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


批注图标

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


语法

INDIRECT(Ref; A1)

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

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

批注图标

如果您打开了一个使用字符串函数计算间接地址的 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 的查找矢量进行排序,否则不会返回任何有用的结果。

批注图标

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


查找支持正则表达式。例如,您可以输入「all.*」来查找起始部分为「all」且后跟任意字符的内容首次出现的位置。如果您想要查找的文本同时也是正则表达式的关键字,则您必须在每个字符前面加上一个「\」字符。您可以在「 - LibreOffice Calc - 计算」中切换正则表达式自动求值功能的打开和关闭状态。

语法

LOOKUP(搜索条件; 搜索范围; 结果范围)

搜索条件」是要查找的数值;直接输入或作为引用输入。

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

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

处理空白单元格

示例

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

MATCH

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

语法

MATCH(搜索条件; 查询数组; 类型)

搜索条件」是要在单行或单列数组中查找的数值。

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

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

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

如果 Type = 1 或者 未指定第三个参数,将返回最后一个小于或等于查找条件的数值。即使查找的数组未排序也同样适用。对于 Type = -1,将返回第一个大于或等于查找条件的数值。

查找支持正则表达式。例如,您可以输入「all.*」来查找起始部分为「all」且后跟任意字符的内容首次出现的位置。如果您想要查找的文本同时也是正则表达式的关键字,则您必须在每个字符前面加上一个「\」字符。您可以在「 - LibreOffice Calc - 计算」中切换正则表达式自动求值功能的打开和关闭状态。

示例

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

OFFSET

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

语法

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。

批注图标

如果包含宽度或高度, 则 OFFSET 函数会返回一个范围, 因此必须作为数组公式输入。如果不提供宽度和高度, 则返回单元格引用。


ROW

返回单元格引用的行号。如果引用的是单元格,函数返回单元格的行号。如果引用的是单元格范围,将在一个单列矩阵 中返回相应的行号 (如果公式是作为矩阵公式输入)。如果 ROW 函数引用的是一个单元格范围,且函数不是作为矩阵公式输入的,则只返回范围中第一个单元格的行号。

语法

ROW(引用)

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

返回引用的工作表号或代表工作表名称的字符串。如果不输入任何参数,返回的将是包含公式的电子表格的工作表号。

语法

SHEET(引用)

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

示例

如果工作表 Sheet2 是电子表格文档的第二个工作表,则「=SHEET(Sheet2.A1)」返回 2。

SHEETS

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

语法

SHEETS(引用)

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

示例

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

STYLE

将样式应用到包含公式的单元格。经过一定的时间后, 可以应用其他样式。此函数始终返回值 0, 允许您将其添加到其他函数中, 而值不会发生改变。与 CURRENT 函数一起, 您可以根据值对单元格应用颜色。例如:「=...+STYLE(IF(CURRENT()>3;"红色";"绿色"))」如果值大于 3, 则对单元格应用样式「红色」, 否则将应用样式「绿色」。这两种单元格格式,「红色」与「绿色」,均应事先定义。

语法

STYLE("Style"; Time; "Style2")

style」是为当前单元格指定的样式名称。样式名称前后必须加上引号。

Time」是一个可选式的以秒为单位的时间参数。如果不填入这个实际参数,单元格样式就不会在某一时间之后发生变化。

Style2」是一个可选的单元格样式名称,在设置的时间之后单元格就会采用这个样式。如果未设置此参数,单元格将采用「默认」样式。

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

示例

=STYLE("Invisible";60;"Default")」定义单元格在重新计算或装入文档 60 秒后为透明格式,然后为该单元格指定默认格式。这两种单元格格式都必须事先定义。

因为 STYLE() 有数字的返回值 0,此返回值附加到一个字符串。这样可以避免在接下来的示例中使用 T():

="Text"&T(STYLE("myStyle"))

另请参阅示例 CURRENT()。

VLOOKUP

垂直搜索并引用右侧相邻单元格。 此函数检查是否数组首列包含某个特定的值。然后函数返回由「Index」命名的列的同一行中的数值。如果忽略参数「Sorted」或者设置为 TRUE 或 1,假定数据以升序排序。在这种情况下,如果精确的「SearchCriterion」没有找到,将返回小于条件的最后一个值。如果「Sorted」设置为 FALSE 或 0,则必须找到精确匹配,否则,将返回「错误: 找不到该值」。因此带有零值的数据不需要以升序排序。

查找支持正则表达式。例如,您可以输入「all.*」来查找起始部分为「all」且后跟任意字符的内容首次出现的位置。如果您想要查找的文本同时也是正则表达式的关键字,则您必须在每个字符前面加上一个「\」字符。您可以在「 - LibreOffice Calc - 计算」中切换正则表达式自动求值功能的打开和关闭状态。

语法

=VLOOKUP(搜索条件; 数组; 索引; 已排序)

搜索条件」是要在数组的第一列中查找的值。

Array」是至少包括两列的引用。

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

Sorted」是可选参数,用于指示数组中的第一列是否按照升序排序。如果第一列未按升序排列,请输入布尔值 FALSE 或 0。已排序的列查找起来更快,且函数总会给出返回值,即使要查找的数值没有精确匹配,但只要它介于排序列表的最小值和最大值之间,函数就一定能够返回一个值。对于未排序列表,要查找的数值必须精确匹配。否则,函数会返回这条错误信息:「错误: 找不到该值」。

处理空白单元格

示例

在单元格 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 内不存在的号码时,函数便会反馈一个错误值。