电子表格函数本部分介绍电子表格函数并提供相关示例。下面介绍的函数包括:ADDRESS、AREAS、CHOOSE、COLUMN、COLUMNS、DDE、HLOOKUP、INDEX、INDEX2、INDIRECT、SHEET、SHEETS、LOOKUP、MATCH、OFFSET、ROW、ROWS、STYLE、VLOOKUP 和 ERRORTYPE。请参阅以下介绍。 ADDRESS根据指定的行号和列号,返回单元格地址(参考)作为文本。可以自己决定是采用绝对地址(例如 $A$1)还是相对地址(例如 A1)或是综合型地址(A$1 或 $A1)来表示引用的单元格。还可以指定工作表的名称。 对于互操作性,ADDRESS 和 INDIRECT 函数支持一个可选参数,用于指定是否应使用 R1C1 地址表示法代替常用的 A1 表示法。 在 ADDRESS 中,该参数将作为第四个参数插入,以将可选工作表名称参数转换至第五个位置。 在 INDIRECT 中,该参数将被追加为第二个参数。 在以上两个函数中,如果在该参数处插入值 0,那么会使用 R1C1 表示法。如果该参数未指定或者具有非 0 值,那么会使用 A1 表示法。 对于 R1C1 表示法,ADDRESS 使用感叹号“!”作为工作表名称分隔符来返回地址字符串,INDIRECT 会将感叹号视为工作表名称分隔符。对于 A1 表示法,这两个函数仍使用点“.”作为工作表名称分隔符。 语法ADDRESS (row; column; abs; A1; sheet) row 参数表示引用的单元格的行号 column 参数表示引用的单元格的列号(是数字,而不是字母) abs 参数决定引用的类型:
A1 参数是可选的。如果该参数设置为 0,那么会使用 R1C1 表示法。如果该参数未指定或者设置为非 0 值,那么会使用 A1 表示法。 sheet 参数表示工作表的名称。它的前后必须加上双引号。 示例:ADDRESS(1; 1; 2; "Sheet2") 的结果是:Sheet2.A$1 如果工作表 2 中单元格 A1 含有数值 -6,通过输入公式 =ABS(INDIRECT(B2) ),就可以借助单元格 B2 中的函数间接引用相关的单元格。结果是单元格 B2 中给出的单元格引用的绝对值,即等于 6。 另请参阅以下函数: 语法AREAS(Reference) Reference 表示对一个单元格或者一个单元格区域的引用。 示例=AREAS(A1:B3~F2~G1) 计算结果是 3,即引用中包含 3 个单元格和/或区域。 另请参阅以下函数: DDE返回基于一个 DDE 链接的结果。如果链接区域或区域中的内容发生变化,公式的结果也会相应地发生变化。您必须重新加载电子表格或选择编辑 - 链接来查看更新后的链接。不允许跨平台链接,例如从 Windows 机器上运行的 IBM® Lotus® Symphony™ 安装到 Linux 机器上创建的文档的链接。 语法DDE(server;file;range;mode) Server 是一个服务器应用程序的名称。Lotus Symphony 应用程序的服务器名称是“soffice”。 File 是具备完整路径的文件名。 Range 是一个要读取数据的区域。 Mode 是一个可选参数,用来控制 DDE 服务器中的数据与数字的转换方式。
示例=DDE("soffice";"c:\Lotus Symphony\document\data1.sxc";"sheet1.A1") 将读取 IBM Lotus Symphony Spreadsheets data1.sxc 中 sheet1 的单元格 A1 的内容。 =DDE("soffice";"c:\Lotus Symphony\document\motto.sxw";"Today's motto") 将在包含该公式的单元格中返回一个格言。首先,您必须在包含格言文本的 motto.sxw 文档中输入一行,并将这一行定义为名为“今日格言”(在 IBM Lotus Symphony Documents 中的创建 - 区段下)的区段的第一行。如果在 Lotus Symphony Documents 中修改(并保存了)格言,将更新定义了该 DDE 链接的所有 Lotus Symphony Spreadsheets 单元格中的格言。 ERRORTYPE借助这个函数能够确定其他单元格中出现的错误值的对应号码。借助这些号码就可以自己生成错误信息文本。 如果发生错误,此功能将返回一个逻辑值或数字值。
语法ERRORTYPE(Reference) Reference 是一个出现错误值的单元格引用。 示例如果在单元格 A1 中出现了错误值“错误:518”,那么函数 =ERRORTYPE(A1) 返回值就是 518。 语法INDEX(reference;row;column;range) reference 是一个单元格引用,可以直接输入,也可以通过指定区域名称来输入。如果该引用含有多重区域,那么必须用圆括号将引用或区域名称括起来。 row(可选)表示引用区域的行号,将为该行号返回一个值。 column(可选)表示引用区域的列标,将为该列标返回一个值。 range(可选)表示分区域的索引(如果引用了多重区域)。 示例=INDEX(Prices;4;1) 返回在数据 - 定义中定义为 Prices 的区域的第 4 行第 1 列的值。 =INDEX(SumX;4;1) 按创建 - 名称 - 定义中的定义返回第 4 行和第 1 列中区域 SumX 的值。 =INDEX((multi);4;1) 表明(多重)区域第 4 行和第 1 列中包含的值,您在创建 - 名称 - 设置中将它们命名为 multi。多重区域可以由多个矩形单元格区域组成,每个区域均含有第 4 行第 1 列处的单元格。如果要调用这个多重区域的第二个区域,请输入 2 作为参数 range。 =INDEX(A1:B6;1;1) 的结果是 A1:B6 区域中左上角单元格处的数值。 另请参阅以下函数: 语法Index2( Range; Row; Column; Sheet) Range(必需):引用区域。Range 可以是区域地址或区域名称。 Row(必需):行的偏移数值,或是包含正整数的单元格的地址或名称。 Column(必需):列的偏移数值,或是包含正整数的单元格的地址或名称。 Sheet(可选):这是可选自变量,它是工作表的偏移数值。如果未指定工作表,将使用区域中的第一张工作表。 XINDEX返回由列标题、行标题和工作表标题(可选)指定的相交位置处的单元格内容。 语法Xindex(Range; Column-heading; Row-heading; Worksheet-heading) Range(必需):引用区域。 Column-heading(可选):区域第一行的单元格内容。 Row-heading(可选):区域第一列的单元格内容。 Worksheet-heading(可选):区域中第一个单元格的内容。 语法INDIRECT(ref) range(必需):引用区域。 示例=INDIRECT(A1) 的结果是 100,若单元格 A1 引用的是单元格 C108 的内容,而单元格 C108 内含有数值 100。 =SUM(INDIRECT("a1:" & ADDRESS(1;3) ) ) 计算单元格 A1 与位置定义为第 1 行第 3 列的单元格之间的单元格值总和。即计算区域 A1:C1 的总和。 另请参阅以下函数: COLUMN返回单元格引用的列标。如果引用的是一个单元格,函数返回的是单元格的列标;如果引用的是一个单元格区域,那么以一个单行数组来返回相应的列标(如果函数公式作为数组公式使用)。如果函数 COLUMN 引用的是一个单元格区域,且函数不是作为数组公式使用的,那么只返回区域中第一个单元格的列标。 语法COLUMN(reference) Reference 是一个要获得其列号的单元格或单元格区域。 如果不输入 reference,函数返回的便是公式所在单元格的列号。Lotus Symphony Spreadsheets 将自动设置对当前单元格的引用。 示例=COLUMN(B3) 的结果是 2,因为列 B 是工作表内的第二个列。 =COLUMN(C3:E3) 等于 3。列 C 是表格中的第三列。 =COLUMN(D3:G10) 的结果是 4。因为列 D 是工作表中的第 4 列且函数 COLUMN 未作为数组公式使用。(在这种情况下,函数返回的就是数组的第一个数值。) {=COLUMN(B2:B7) } 和 =COLUMN(B2:B7) 均返回 2,因为引用只将 B 列作为表格中的第二列包含。由于单行区域只有一个列号,所以是否作为数组公式使用对结果没有影响。 =COLUMN() 的结果是 3,若公式位于列 C 处。 如果“Rabbit”是指定的区域(C1:D3),{=COLUMN(Rabbit) } 将返回单行数组(3, 4)。 另请参阅以下函数: 语法COLUMNS(array) array 用于指定要计算其列数的单元格区域。该变量也可以是一个单元格。 示例=COLUMNS(B5) 的结果是 1,因为一个单元格只能包含一个列。 =COLUMNS(A1:C5) 的结果是 3,因为此引用区域包含 3 个列。 如果“Rabbit”是指定的区域(C1:D3),那么 =COLUMNS(Rabbit) 返回 2。 另请参阅以下函数: VLOOKUP垂直方向搜索并引用其右边的单元格。此函检查数组中的第一列是否含有指定的数值。然后将数值返回到同一行中由索引指定的数组列中。 搜索支持 . 输入文本后,如果希望查找以“all”为起始部分、其后为任意字符的搜索项首次出现的位置,可以输入“all.*”。 语法=VLOOKUP(Search criterion;array;index;sort order) Search criterion 是在数组的第一列中搜索的值。 array 用于指定要在其中查找数据的区域(至少包括两列)。 index 是在数值所在数据组内部的列号。第一列的号码是 1。 sort order 是一个可选的参数,用于指示数组中的第一列是否按照升序排序。如果第一列未按升序排序,请输入逻辑值 FALSE。在按顺序排列的列中搜索的速度比较快。而且,即使它没有精确地找到要搜索的数值,但只要这个数值介于排序列表的最小值和最大值之间,函数就能够返回一个数值。在未进行排序的列表中,搜索的数值必须精确匹配。否则函数返回以下消息:错误:该值不可用。 示例在单元格 A1 处输入菜单中一道菜的编号后,在相邻的单元格 (B1) 处立刻以文本形式显示出这道菜的名称。单元格 D1:E100 数组中含有每道菜的编号与名称的对应关系。单元格 D1 处是编号 100,E1 处是菜名 Vegetable Soup,100 道菜都采用这样的格式。列 D 中的编号按升序排序,因此可以省略可选参数sort order。 请在单元格 B1 处输入下列公式: =VLOOKUP(A1; D1:E100; 2) 这样一旦您在单元格 A1 处输入一道菜的号码后,单元格 B1 处便会显示这道菜的名称(菜的名称在单元格区域 D1:E100 的第 2 列内)。输入一个在单元格区域 D1:E100 内不存在的号码,单元格 B1 处显示的便是小于等于此号码的最大值。如果您不希望这种近似匹配,可在公式的可选参数 Sort order 处输入逻辑值 FALSE,这样在输入一个单元格区域 D1:E100 内不存在的号码时,函数便会返回一个错误值。 另请参阅以下函数: 语法SHEET(Reference) Reference 是一个可选参数,是对单元格、区域或工作表名称字符串的引用。 示例如果 Sheet2 是该工作表文档中的第二张工作表,那么 =SHEET(Sheet2.A1) 的结果是 2。 语法SHEETS(Reference) Reference 对工作表或区域的引用。这是一个可选参数。 示例如果工作表依次为 Sheet1、Sheet2 和 Sheet3,那么 =SHEETS(Sheet1.A1:Sheet3.G12) 的结果是 3。 语法MATCH(search criterion;lookup_array;type) search criterion 是要在单行或单列数组中搜索的数值。 lookup_array 是搜索的引用。搜索数组可以是单行或单列,也可以是单行或单列的一部分。 type 可以是数值 1、0 或 -1。如果 type = 1 或未设置这个可选参数,那么认为搜索数组的第一列按升序排序。如果 type = -1,那么认为该列按降序排序。这与 Microsoft Excel 中的函数相对应。 如果 match_type=0,那么找到的内容必须完全一致。如果 lookup_value 多次被找到,函数将回到第一个发现位置。只有在 match_type=0 时才允许通过正则表达式进行搜索。 搜索支持 . 输入文本后,如果希望查找以“all”为起始部分、其后为任意字符的搜索项首次出现的位置,可以输入“all.*”。 如果 type = 1 或未设置第三个参数,将返回最后一个小于等于搜索值的数值。即使搜索数组未排序也同样适用。如果 type = -1,将返回第一个大于等于搜索值的数值。 示例=MATCH(200; D1:D100) 在按列 D 排序的 D1:D100 区域中搜索数值 200。一旦找到这个数值,就会显示该数值所在的行号。如果在搜索该列的过程中发现了一个更大的数值,将显示它前一行的编号。 另请参阅以下函数: INDEX、HLOOKUP 和 LOOKUP语法OFFSET(reference;rows;columns;height;width) Reference 是用于函数查找新的资料的单元格。 Rows 是上下移动的行数。向下移动为负值。 Columns 是左右移动的列数。向左移动为负值。 Height 是一个可选择的参数。说明的是引用区域的行数。 Width 是一个可选择的参数。说明的是引用区域的列数。 示例=OFFSET(A1;2,2) 返回的是单元格 C3 中的数值(单元格 A1 向下移动两行,向右移动两列)。若单元格 C3 内的数值为 100,那么函数的结果便是 100。 =SUM(OFFSET(A1;2;2;5;6) ) 返回的是一个单元格区域各个数值相加的总值。它是 C3 为出发点,共包含五个行六个列的单元格区域,即单元格区域 C3:H7。 LOOKUP此函数能够根据搜索条件在一个向量(单行区域或单列区域)中查找数值。可选地,指定值(同一索引)返回在不同的列和行中。与函数 VLOOKUP 和 HLOOKUP 的不同,搜索向量和结果向量可以位于不同的位置,它们不必紧挨在一起。另外函数 LOOKUP 中的搜索向量必须按序排列,否则结果便无效。 搜索支持 . 输入文本后,如果希望查找以“all”为起始部分、其后为任意字符的搜索项首次出现的位置,可以输入“all.*”。 语法LOOKUP(Search criterion;Search vector;result_vector) Search criterion 是要查找的数值;直接输入或者指引输入。 Search vector 是要在其中搜索的向量(单行或单列区域)。 result_vector 是另一个单行或单列区域,用于存放函数的结果。结果是结果向量单元格中的与在搜索向量中找到的向量具有相同的索引。 示例=LOOKUP(A1; D1:D100;F1:F100) 根据单元格 A1 中输入的数值在区域 D1:D100 中搜索相应的单元格。如果找到匹配的单元格,结果向量的索引就确定了。例如,如果找到的是该区域中第十二个单元格,那么第十二个单元格的内容被作为函数值返回到结果向量中。 另请参阅以下函数: STYLE将样式应用于包含公式的单元格。在设置的一段时间后,还可以应用另一种样式。这个函数总是返回数值 0,这样您就可以用增加的方式把这个函数添加到另一个函数中而不改变该函数的值。与 CURRENT 函数一起使用时,您还可以给单元格上色,而不考虑值。例如使用 =...+STYLE(IF(CURRENT() >3;"红色";"绿色") ) 使单元格变成“红色”样式,如果数值大于 3,那么为“绿色”。这两种单元格格式都必须事先定义。 语法STYLE(style;time;style2) style 是为当前单元格指定的样式名称。样式名称前后必须加上引号。 Time 是一个可选式的以秒为单位的时间参数。如果不填入这个实际参数,单元格样式就不会在某一时间之后发生变化。 style2 是一个可选的单元格样式名称,在设置的时间之后单元格就会采用这个样式。如果未设置此参数,单元格将采用“标准”样式。 示例=STYLE("隐藏的";60;"Standard") 把单元格定义成在重新计算或加载文档后 60 秒内为隐藏格式,然后该单元格获得标准格式。这两种单元格格式都必须事先定义。 语法CHOOSE(Index; value1;...value30) Index 是某一个 1 至 30 的之中的要返回数值的引用数。 value 1...value 30 是一个数值顺序表,它是当作一个单元格的引用参数或是一个直接输入的数值。 示例例如,对于 =CHOOSE(A1; B1; B2; B3; "Today"; "Yesterday"; "Tomorrow") :如果 A1 = 2,将返回单元格 B2 中的内容;如果 A1 = 4,将返回文本“Today”。 另请参阅以下函数: HLOOKUP在选定区域的下方搜索某个数值和对单元格的引用。此函数检验数组的第一行是否含有特定数值。函数随后返回 Index 在同一列中指定的数组行中的值。 搜索支持 . 输入文本后,如果希望查找以“all”为起始部分、其后为任意字符的搜索项首次出现的位置,可以输入“all.*”。 ROW返回单元格引用的行号。如果引用的是单元格,函数返回单元格的行号。如果引用的是单元格区域,那么以一个单列数组返回相应的行号(函数作为数组公式输入)。如果 ROW 函数引用的是一个单元格区域,且函数不是作为数组公式输入的,那么只返回区域中第一个单元格的行号。 语法ROW(reference) reference 是指要查询一个单元格区域的行编号的引用。这个引用值也可以是一个单独的单元格。 如果不指定引用,那么将找到输入公式所在的单元格的行号。Lotus Symphony Spreadsheets 将自动设置对当前单元格的引用。 示例=ROW(B3) 返回 3,因为引用的目标是表格中的第三行。 {=ROW(D5:D8) } 返回单列数组(5, 6, 7, 8),因为指定的引用包含行 5 至 8。 =ROW(D5:D8) 返回 5。因为函数 ROW 未作为数组公式使用,所以只返回引用的第一行的行号。 {=ROW(A1:E1) } 和 =ROW(A1:E1) 的结果都是 1,因为引用的表格中第一列的第一个行号是 1。由于单行区域只有一个行号,所以是否作为数组公式使用对结果没有影响。 =ROW() 计算得出 3,如果在单元格第 3 行输入这个公式。 如果“Rabbit”是指定的区域(C1:D3),{=ROW(Rabbit) } 将返回单列数组(1, 2, 3)。 另请参阅以下函数: 语法ROWS(array) array 是一个要求得其行数目的单元格区域。参数也可以是单独的一个单元格。 |
|