SPS中您可以使用列表或库中的公式和函数以多种方式计算数据。通过向列表或库中添加计算列,可以为来自其他列的数据创建公式,并可执行函数以计算日期和时间、运行数学方程或处理文字。例如,在任务列表中,可以使用一个列根据“开始日期”和“完成日期”列来计算完成每项任务所需的天数。
注释 本文介绍与使用公式和函数有关的基本概念。有关具体某个函数的特定信息,请参阅有关该函数的文章。
本文内容
公式概述
函数概述
在公式中使用列引用
在公式中使用常量
在公式中使用运算符
公式概述
公式是对列表或库中的值进行计算的等式。公式以等号 (=) 开头。例如,在下面的公式中,结果等于 2 乘以 3 再加 5。
=5+2*3
可以在计算列中使用公式,也可以使用公式计算某一列的默认值。公式中可以包含函数 (函数:函数是预先编写的公式,可以对一个或多个值执行运算,并返回一个或多个值。函数可以简化和缩短工作表中的公式,尤其在用公式执行很长或复杂的计算时。)、列引用、运算符 (运算符:一个标记或符号,指定表达式内执行的计算的类型。有数学、比较、逻辑和引用运算符等。)和常量 (常量:不进行计算的值,因此也不会发生变化。例如,数字 210 以及文本“每季度收入”都是常量。表达式以及表达式产生的值都不是常量。),如下例所示。
=PI()*[Result]^2
元素 | 说明 |
---|---|
函数 | PI() 函数返回圆周率 pi 的值 3.141592654。 |
引用(或列名) | [Result] 表示当前行的“Result”列中的值。 |
常量 | 直接输入到公式中的数字或文本值,如 2。 |
运算符 | *(星号)运算符执行乘法运算,^(插入符号)运算符表示将数字乘幂。 |
公式可以使用上表中的一个或多个元素。下面是一些按照复杂程度排序的公式的示例。
简单公式(如 =128+345)
下列公式包含常量和运算符。
示例 | 说明 |
---|---|
=128+345 | 将 128 与 345 相加 |
=5^2 | 计算 5 的平方 |
包含列引用的公式(如 =[Revenue] >[Cost])
下列公式引用同一个列表或库中的其他列。
示例 | 说明 |
---|---|
=[Revenue] | 使用“Revenue”列中的值。 |
=[Revenue]*10/100 | “Revenue”列中的值的 10%。 |
=[Revenue] > [Cost] | 如果“Revenue”列中的值大于“Cost”列中的值,则返回“Yes”。 |
调用函数的公式(如 =AVERAGE(1, 2, 3, 4, 5))
下列公式调用内置函数。
示例 | 说明 |
---|---|
=AVERAGE(1, 2, 3, 4, 5) | 返回一组数值的平均值。 |
=MAX([Q1], [Q2], [Q3], [Q4]) | 返回一组数值中的最大值。 |
=IF([Cost]>[Revenue], "Not OK", "OK") | 如果成本大于收入,则返回“Not OK”。否则,返回“OK”。 |
=DAY("15-Apr-2008") | 返回日期中的天。此公式返回数字 15。 |
含有嵌套函数的公式(如 =SUM(IF([A]>[B], [A]-[B], 10), [C]))
下列公式将一个或多个函数指定为函数参数。
示例 | 说明 |
---|---|
=SUM(IF([A]>[B], [A]-[B], 10), [C]) | IF 函数返回列 A 与列 B 中值的差值或 10。 SUM 函数将 IF 函数的返回值与列 C 中的值相加。 |
=DEGREES(PI()) | PI 函数返回数字 3.141592654。 DEGREES 函数将弧度值转换为角度值。此公式返回数值 180。 |
=ISNUMBER(FIND("BD",[Column1])) | FIND 函数在 Column1 中搜索字符串 BD,并返回该字符串的起始位置。如果未找到该字符串,则返回一个错误值。 如果 FIND 函数返回一个数值,则 ISNUMBER 函数返回“Yes”。否则,它返回“No”。 |
函数概述
函数是预定义的公式,这些公式使用叫做参数的特定值按特定顺序或结构进行计算。函数可用于执行简单或复杂的计算。例如,下面的 ROUND 函数实例可将“Cost”列的数字四舍五入为小数点后两位。
=ROUND([Cost], 2)
学习函数和公式时,下列词汇很有帮助:
结构 函数的结构以等号 (=) 开始,后跟函数名、左括号、以逗号分隔的函数参数,以右括号结束。
函数名 列表或库支持的函数的名称。每个函数都引用特定个数的参数,并对这些参数进行处理,然后返回一个值。
参数 参数可以是数字、文本、逻辑值(如 True 或 False)或列引用。指定的参数必须是该参数的有效值。参数也可以是常量、公式或其他函数。
在某些情况下,可能需要将一个函数作为另一个函数的一个参数使用。例如,下面的公式使用了嵌套的 AVERAGE 函数,将结果与两列的值之和进行比较。
=AVERAGE([Cost1], SUM([Cost2]+[Discount]))
有效返回值 当函数作为参数使用时,其返回值的类型必须与参数所用值的类型相同。例如,如果参数使用“Yes”或“No”,则嵌套函数必须返回“Yes”或“No”;否则,列表或库将显示 #VALUE! 错误值。
嵌套层限制 一个公式最多可以含有八层嵌套函数。当函数 B 作为函数 A 中的参数使用时,函数 B 是第二层函数。例如,在上面的示例中,SUM 函数是第二层函数,因为它是 AVERAGE 函数的参数。在 SUM 函数中嵌套的函数是第三层函数,依此类推。
注释
在公式中使用列引用
引用标识当前行中的一个单元格,并向列表或库指示在何处搜索要在公式中使用的值或数据。例如,[Cost] 引用当前行中“Cost”列中的值。如果当前行中“Cost”列的值为 100,则 =[Cost]*3 返回 300。
通过引用,可以在一个或多个公式中使用列表或库的不同列中所包含的数据。可以在公式中引用下列数据类型的列:单行文本、数字、货币、日期和时间、选择、是/否以及计算列。
可以使用列的显示名称在公式中引用该列。如果名称中包含空格或特殊字符,则必须将名称括在方括号 ([ ]) 中。引用不区分大小写。例如,可以在公式中使用 [Unit Price] 或 [unit price] 来引用“Unit Price”这一列。
注释
在公式中使用常量
常量是不用计算的值。例如,日期 10/9/2008、数字 210 以及文本“季度收入”都是常量。常量可以是下列数据类型:
String(示例:=[Last Name] = "Smith")
String 常量括在引号中,最多可以包含 255 个字符。
Number(示例:=[Cost] >= 29.99)
Numeric 常量可以包含小数位数,可以是正数或负数。
Date(示例:=[Date] > DATE(2007,7,1))
Date 常量要求使用 DATE(year,month,day) 函数。
Boolean(示例:=IF([Cost]>[Revenue], "Loss", "No Loss")
“Yes”和“No”是 Boolean 常量。可以在条件表达中使用 Boolean 常量。在上面的示例中,如果“Cost”大于“Revenue”,则 IF 函数返回“Yes”,该公式返回字符串“Loss”。如果“Cost”等于或小于“Revenue”,则该函数返回“No”,并且该公式返回字符串“No Loss”。
在公式中使用运算符
运算符指定要对公式中的元素执行的运算的类型。列表和库支持三种不同类型的运算符:算术运算符、比较运算符和文本运算符。
算术运算符
可使用下列算术运算符来执行加法、减法或乘法等基本数学运算,组合数字或者产生数字结果。
算术运算符 | 含义(示例) |
---|---|
+(加号) | 加法运算 (3+3) |
–(减号) | 减法运算 (3–1) 负数 (–1) |
*(星号) | 乘法运算 (3*3) |
/(正斜杠) | 除法运算 (3/3) |
%(百分号) | 百分比 (20%) |
^(插入符号) | 乘幂运算 (3^2) |
比较运算符
可以使用下列运算符对两个值进行比较。使用这些运算符对两个值进行比较时,结果是一个逻辑值“Yes”或“No”。
比较运算符 | 含义(示例) |
---|---|
=(等号) | 等于 (A=B) |
>(大于号) | 大于 (A>B) |
<(小于号) | 小于 (A<B) |
>=(大于等于号) | 大于或等于 (A>=B) |
<=(小于等于号) | 小于或等于 (A<=B) |
<>(不等号) | 不等于 (A<>B) |
文本运算符
使用与号 (&) 联接或连接一个或更多个文本字符串以产生一串文本。
文本运算符 | 含义(示例) |
---|---|
&(与号) | 将两个值连接或联接起来产生一个连续的文本值 ("North"&"wind") |
列表或库执行公式中的运算的顺序
公式按照特定的顺序计算值。公式可以使用等号(=)开头。等号后面紧跟着要计算的元素(操作数),它们之间用运算符分隔。根据公式中每个运算符的特定顺序,列表和库从左向右计算公式。
运算符优先级
如果一个公式中用到多个运算符,列表和库将按下表所示的顺序进行运算。如果公式中包含具有相同优先级的运算符,例如,公式中同时包含乘法运算符和除法运算符,则列表和库将从左到右计算运算符。
运算符 | 说明 |
---|---|
– | 负号(例如 –1) |
% | 百分比 |
^ | 乘幂 |
* 和 / | 乘和除 |
+ 和 – | 加和减 |
& | 连接(将两个文本串连接在一起) |
= < > <= >= <> | 比较 |
使用括号
要更改求值顺序,请将公式中要先计算的部分用括号括起来。例如,下面公式的结果是 11,因为列表或库先进行乘法运算后进行加法运算。该公式将 2 与 3 相乘,然后再加上 5,所得的数值就是最终结果。
=5+2*3
与此相反,如果使用括号改变语法,则列表或库先将 5 与 2 相加,再用所得的结果乘以 3,得到的最终结果为 21。
=(5+2)*3
在下面的示例中,公式中第一部分周围的括号强制列表或库先计算 [Cost]+25,然后用结果除以列 EC1 和 EC2 中的值之和。
转载于:https://blog.51cto.com/pclzr/1909662