可以使用列表或库中的公式和函数以多种方式计算数据。 通过将计算列添加到列表或库,您可以创建包含其他列的数据的公式,并执行函数来计算日期和时间、执行数学公式或处理文本。 例如,在任务列表中,可以使用列根据"开始日期"和"完成日期"列计算完成每个任务所需的天数。
注意: 本文介绍与使用公式和函数相关的基本概念。 有关特定函数的特定信息,请参阅有关该函数的文章。
本文内容
公式概述
公式是一些公式,用于对列表或库中的值执行计算。 公式以等号 (=) 开头。 例如,下面的公式将 2 乘以 3,然后将 5 相加到结果中。
=5+2*3
可以在计算列中使用公式,并计算列的默认值。 公式可以包含函数、列引用、运算符和常量,如以下示例所示。
=PI()*[Result]^2
元素 |
说明 |
---|---|
函数 |
PI () 函数返回 pi 的值:3.141592654。 |
引用 (或列) |
[Result] 表示当前行的"结果"列中的值。 |
常数 |
直接输入到公式中的数字或文本值,例如 2。 |
运算符 |
* (星号) 运算符相乘,^ (号) 运算符将数字提升为一个电源。 |
公式可能使用上表中的一个或多个元素。 下面是一些公式示例 (复杂性和复杂性) 。
简单公式 (如 =128+345)
以下公式包含常量和运算符。
示例 |
说明 |
---|---|
=128+345 |
添加 128 和 345 |
=5^2 |
Squares 5 |
包含列引用的公式 (=[Revenue] >[Cost])
以下公式引用同一列表或库中的其他列。
示例 |
说明 |
---|---|
=[Revenue] |
使用"收入"列中的值。 |
=[Revenue]*10/100 |
"收入"列中值的 10%。 |
=[Revenue] > [Cost] |
如果"收入"列中的值大于"成本"列中的值,则返回"是"。 |
调用函数函数的公式 (=AVERAGE (1、2、3、4、5) )
以下公式调用内置函数。
示例 |
说明 |
---|---|
=AVERAGE (1、2、3、4、5) |
返回一组值的平均值。 |
=MAX ([Q1]、[Q2]、[Q3]、[Q4]) |
返回一组值中的最大值。 |
=IF ([Cost]>[Revenue], "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 函数返回"是"。 否则,它将返回"否"。 |
函数概述
函数是预定义的公式,通过使用一些称为参数的特定数值来特定的顺序或结构执行计算。 函数可用于执行简单或复杂的计算。 例如,ROUND 函数的以下实例将"成本"列中的数字舍入为两个小数位数。
=ROUND([Cost], 2)
学习函数和公式时,以下词汇表非常有用:
结构 函数的结构以等号 (=) 开始,后面紧跟函数名称和左括号,然后以逗号分隔输入该函数的参数,最后是右括号。
函数名称 这是列表或库支持的函数的名称。 每个函数采用特定数目的参数,处理这些参数并返回值。
参数 参数可以是数字、文本、逻辑值(如 True 或 False)或列引用。 指定的参数必须为该参数生成有效值。 参数也可以是常量、公式或其他函数。
在某些情况下,您可能需要将相应函数作为另一函数的参数使用。 例如,下面的公式使用嵌套的 AVERAGE 函数,并将结果与两列值的总和进行比较。
=AVERAGE([Cost1], SUM([Cost2]+[Discount]))
有效返回值 当函数用作参数时,它必须返回参数使用的相同类型的值。 例如,如果参数使用"是"或"否",则嵌套函数必须返回"是"或"否"。 否则,列表或库会显示一个#VALUE! 错误值。
嵌套级别限制 一个公式可以包含最多八个级别的嵌套函数。 当函数 B 用作函数 A 中的参数时,函数 B 是二级函数。 例如,在以上示例中,SUM 函数是二级函数,因为它是 AVERAGE 函数的参数。 嵌套在 SUM 函数中的函数将是第三级函数,等等。
注意:
-
列表和库不支持 RAND 和 NOW 函数。
-
TODAY 和 ME 函数在计算列中不受支持,但在列的默认值设置中受支持。
在公式中使用列引用
引用标识当前行中的单元格,并指示列表或库在何处搜索要用于公式的值或数据。 例如,[成本] 引用当前行中"成本"列中的值。 如果"成本"列的当前行的值为 100,则 =[Cost]*3 返回 300。
使用引用,可以在一个或多个公式中使用列表或库的不同列中包含的数据。 以下数据类型的列可以在公式中引用:单行文本、数字、货币、日期和时间、选择、是/否和计算。
使用列显示名称引用公式中的列。 如果名称包含空格或特殊字符,则必须将名称括在方括号 ([ ]) 。 引用不区分大小写。 例如,可以将公式中的"单价"列引用为 [单价] 或 [单价]。
注意:
-
不能引用当前行外行中的值。
-
不能引用其他列表或库中的值。
-
不能引用新插入的行的行 ID。 执行计算时,该 ID 尚不存在。
-
您不能引用为列创建默认值的公式中的另一列。
在公式中使用常量
常量是未计算的值。 例如,日期 10/9/2008、数字 210 以及文本“季度收入”都是常量。 常量可以是以下数据类型:
-
字符串 (示例:=[姓氏] = "Smith")
字符串常量括在引号中,最多包含 255 个字符。
-
数字 (示例:=[成本] >= 29.99)
数值常量可以包含小数位数,可以是正数或负数。
-
日期 (示例:=[Date] > DATE (2007,7,1) )
日期常量要求使用 DATE 函数 (年、月、日) 函数。
-
布尔值 (示例:=IF ([Cost]>[Revenue], "Loss", "No Loss")
"是"和"否"是布尔常量。 可以在条件表达式中使用它们。 在上例中,如果"成本"大于"收入",则 IF 函数返回"是",公式返回字符串"Loss"。 如果"成本"等于或小于"收入",则函数返回"否",公式返回字符串"无损失"。
在公式中使用计算运算符
运算符用于指定要对公式中的元素执行的计算类型。 列表和库支持三种不同类型的计算运算符:算术、比较和文本。
算术运算符
使用以下算术运算符执行基本的数学运算,例如加、减或乘;合并数字;或 生成数字结果。
算术运算符 |
含义 (示例) |
---|---|
+(加号) |
添加 (3+3) |
–(减号) |
减法 (3-1) 求反 (–1) |
*(星号) |
乘法 (3*3) |
/(正斜杠) |
第 (3/3) |
%(百分号) |
百 (20%) |
^(脱字号) |
指数 3^2 (3^2) |
比较运算符
可以使用下列运算符比较两个值。 使用这些运算符比较两个值时,结果为"是"或"否"的逻辑值。
比较运算符 |
含义 (示例) |
---|---|
=(等号) |
等于 (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 中值的总和。
=([Cost]+25)/SUM([EC1]+[EC2])