在处于 设计 模式的表单中输入 公式 控件时,可以使用以下公式函数。

数学函数

绝对值
将所有负数更改为正数。正数和零不变。

示例ABS(-5) 返回 5。

进行除法运算,并向下舍入到最近的整数。

示例DIV(33, 2) 返回 16。

指数
计算 e 的幂,其中 e 是常数 2.718281。

示例EXP(2) 返回 7.39。

因子
计算一个值的阶乘。

示例FACT(6) 返回 720。

计算一个值的倒数。

示例INV(4) 返回 0.25。

以 10 为底的对数
计算以 10 为底数的对数。十进制对数仅针对正数定义。当您将一个数字与 10 相乘,您将使其对数增大 1;当您将一个数字除以 10,您将使其对数减小 1。

示例LOGTEN(10000) 返回 4。

对数
计算您指定的基数的对数。

示例LOG(125, 5) 返回 3。

自然对数 (以 e 为底的对数)
计算以 e 为底数的对数。

示例LN(100) 返回 5。

部分积
计算从第 1 行到当前行的行的乘积。
示例:设置包含两列的数据录入表。第 1 列包含数据值,第 2 列包含公式 PARP(Control1)
第 1 列 第 2 列
3 3
4 12
5 60
部分和
计算从第 1 行开始到当前行的行的总和。
示例:设置包含两列的数据录入表。第 1 列包含数据值,第 2 列包含公式 PARS(Control1)
第 1 列 第 2 列
1 1
4 5
5 10
计算数字的幂。

示例POWER(10,2) 10 的二次方,即 100。

计算一系列数字的乘积。

示例:如果 Control1 包含 2、3 和 4,则 PRODUCT(Control1) 返回 24=(2 * 3 * 4)。如果要在数据录入表中使用 PRODUCT,应仅在页眉或页脚单元格中使用。

余数
计算一个值除以一个除数后的余数。

示例MOD(10, 3) 返回 1。

取整
将值四舍五入到指定的小数位数。

示例ROUND(3.05882, 2) 返回 3.06。

平方根
计算一个正数的平方根。如果值为负数,则 平方根 返回 *。

示例:Control1 是一个包含值 100 的文本框。SQRT(Control1) 返回 10。

计算一列值的总和。

示例:数据录入表中的 Control1 包含以下值:1、2、3 和 4。SUM(Control1) 返回 10。如果在数据录入表中使用 SUM,则必须将公式控件放在页眉或页脚单元格中。

积的和
计算两组数字的乘积之和。

示例:Control1 包含 2、1 和 2。Control2 包含 2、2、3。SUMPRODUCT(Control1, Control2) 返回 12=(2*2 + 1*2 + 2*3)。如果要在数据录入表中使用 SUMPRODUCT,应仅在页眉或页脚单元格中使用。

统计函数

计数
计算观测值个数

示例:数据录入表中的 Control1 包含以下值:2、3、4、7、1。COUNT(Control1) 返回 5。

标准正态累积分布的逆
计算与概率密度函数下的区域关联的值。分布的均值为 0,标准差为 1。

示例NORMINV(.05) 返回 -1.645,这是概率密度曲线上的点,占其下方总面积的 5%。

最大值
返回系列中的最大值。

示例:数据录入表中的 Control1 包含以下值:2、4、6、8、10。MAX(Control1) 返回 10。如果要在数据录入表中使用 MAX,应仅在页眉或页脚单元格中使用。

均值
计算平均值或均值。

示例:数据录入表中的 Control1 包含以下值:2、4、6、8、10。MEAN(Control1) 返回 6。如果要在数据录入表中使用 MEAN,应仅在页眉或页脚单元格中使用。

中位数
计算数据的中位数或中间值。对于含有 n 个值的系列,如果 n 是奇数,中位数是中间值。如果 n 是偶数,中位数是两个中间值的平均值。

示例:例如,数据录入表中的 Control1 包含以下值:1、2、3、4、5。MEDIAN(Control1) 返回 3。如果要在数据录入表中使用 MEDIAN,应仅在页眉或页脚单元格中使用。

最小值
返回系列中的最小值。

示例:数据录入表中的 Control1 包含以下值:2、4、6、8、10。MIN(Control1) 返回 2。如果要在数据录入表中使用 MIN,应仅在页眉或页脚单元格中使用。

极差
计算一系列值中的最大值和最小值之间的差。

示例:如果 Control1 包含 10、30、40 和 60,则 RANGE(Control1) 返回 50=(60 - 10)。如果要在数据录入表中使用 RANGE,应仅在页眉或页脚单元格中使用。

标准差
测量均值的相关离差(数据的扩散程度)。

示例:数据录入表中的 Control1 包含以下值:80、80、80 和 80。STDEV(Control1) 返回 0,因为值不变。如果值为 80、90、100 和 110,则 STDEV(Control1) 返回 12.91。如果要在数据录入表中使用 STDEV,应仅在页眉或页脚单元格中使用。

标准正态累积分布
返回概率密度函数下的面积。分布的均值为 0,标准差为 1。

示例NORMDIST(0) 返回 0.50,因为 50% 的分布低于 0。

金融函数

本节中的语法示例使用以下变量。
  • 期数 是付款期的数量。
  • 利率是每个时期的常利率。
  • 类型是指某个时期内应付款的时间,其中 1 表示开始,0 表示结束。
注意

以下示例使用美元。

未来值 (FV)
计算一段时间内付款的投资未来价值。
  • 语法FV(利率, 期数, 付款, 当前值, 类型)
  • 示例:从 0 美元开始,每月投资 10 美元,年利率为 5%,按月计算复利。FV(0.05/12, 12, -10, 0, 0) 返回 122.79 美元;因此,一年后投资价值达 122.79 美元。
注意

利率 R 必须采用十进制形式,并应指定每个时期的利率。例如,要以 6% 的年利率计算 5000 美元在 12 年后的未来价值,请输入 FV(.06, 12, 5000)。要以 6% 的年利率计算 5000 美元在 12 个季度后的未来价值,请输入 FV(.06/4, 12, 5000)

付款 (PMT)
计算具有固定利率的年金的定期支付。
  • 语法PMT(利率, 期数, 当前值, 未来值, 类型)
  • 示例:以 7.25% 的利率支付 1 万美元的四年期贷款,按月计算复利。PMT(0.0725/12, 48, 10000, 0, 0) 返回 -240.62 美元;因此,每月支付 240.62 美元。
当前值 (PV)
计算一段时间内付款的投资现值。
  • 语法PV(利率, 周期数, 付款, 未来值, 类型)
  • 示例:在接下来的五年中,每年以 6.5% 的年利率收到 100 美元的付款。PV(0.065, 5, 100, 0, 0) 返回 415.57 美元;因此,五年内每年收到 100 美元的付款和现在收到 415.57 美元是一样的。

逻辑函数

检查所有条件是否都为真。如果满足所有条件,则返回 真,否则返回 假。(仅用作 IF 语句中的第一个术语)。

示例:如果 Control1 和 Control2 中的值为“是”,则 IF(AND(Control1="是", Control2="是"), 1, 0) 返回 1,如果是其他值,则返回 0。

条件阵列
返回满足某个条件的一列值。包含公式的数据录入表必须包含与满足条件的值数相同的行数。
  • 示例ARRAYIF(Control1, Control1>5) 返回 Control 1 中大于 5 的一列值。
  • 示例ARRAYIF(Control1, Control2=MAX(Control2)) 返回 Control1 中与 Control2 中的最大值相关联的值。
条件计数
返回满足条件的次数。在重复的行或列中,返回在行或列中满足条件的次数。在页眉或页脚中,返回表中满足条件的次数。

示例:Control1 包含以下值:2、3、4、7 和 1。COUNTIF(Control1>3) 返回 2。

条件
检查是否满足条件,如果为 真,则返回一个值,如果为 假,则返回另一个值。

示例:如果 Control1 中的值为“是”,则 IF(Control1="是", 1, 0) 返回 1,如果是其他值,则返回 0。

将 假更改为 真,或将 真更改为 假。用于否定逻辑条件。

示例NOT(ISMISSING(Control1)) 如果 Control1 包含值,则返回 1;如果 Control1 不包含值,则返回 0。

检查是否有任何条件为真。如果至少满足一个条件,则返 真,否则返回 假。(仅用作 IF语句中的第一个术语)。

示例:如果 Control1 和 Control2 中的值为“是”,则 IF(OR(Control1="是", Control2="是"), 1, 0) 返回 1,如果“yes”(是)未显示在任何一个控件中,则返回 0。

文本函数

将文本字符串用双引号括起。
合并
将多个文本字符串合并为一个文本字符串。公式控件的数据类型必须是文本。

示例:Control1 包含“总计”,Control2 包含“缺陷” 。CONCATENATE(Control1, Control2) 返回“缺陷总计” 。

查找
返回一个文本字符串在另一个文本字符串中的起始位置(从左侧开始数)。FIND 区分大小写。

示例:Control1 包含“B32A64S”。FIND("A", Control1) 返回 4,因为 A 是文本字符串中的第 4 个字符。FIND("a", Control1) 返回一条错误消息,因为该函数区分大小写。

左(L)
从一个文本字符串的开头返回指定数量的字符。公式控件的数据类型必须是文本。

示例LEFT("Project Start Date", 7) 返回“Project”(项目)。

长度
计算文本字符串中的字符数(包括空格)。公式控件的数据类型必须是文本。

示例LENGTH("Project Start Date") 返回 18。

中部
返回给定起始位置和字符数的文本字符串中间的字符。公式控件的数据类型必须是文本。

示例MID("Project Start Date", 9, 10) 返回“Start Date”(开始日期)。

重复
返回重复指定次数的字符。第一个参数的重复字符必须用引号引起来(除非它是控件)。公式控件的数据类型必须是文本。

示例:Control1 包含值 2、4 和 1,采用整数格式。REPT("1",Control1) 返回 11、1111 和 1。

右(R)
从一个文本字符串的末尾返回指定数量的字符。公式控件的数据类型必须是文本。

示例RIGHT("Project Start Date", 10) 返回“Start Date”(开始日期)。

文本
将数值转换为文本值。公式控件的数据类型必须是文本。

示例TEXT(10) 返回“10”。

日期函数

日期
返回给定年、月和日的日期。

示例:当公式控件的数据类型为数值,且格式设置为日期时,DATE(2021, 01, 01) 返回 2021/1/1。如果格式不是日期,则 返回在数字日期时间代码中表示日期的数字。

日期差值
返回从一个日期到下一个日期的已经过天数(两个日期之间的差值)。公式控件的数据类型必须是数字。

示例:当 Control1 包含日期 2021 年 10 月 13 日,Control2 包含日期 2021 年 10 月 25 日 时,DATEDIF(Control1, Control2) 返回 12。

返回月份中的某一天,即介于 1 和 31 之间的数字。

示例:日期选取器 Control1 包含日期 2021 年 12 月 20 日。DAY(Control1) 返回 20。

返回月份,一个介于 1(1 月)和 12(12 月)之间的数字。

示例:日期选取器 Control1 包含日期 2021 年 12 月 20 日。MONTH(Control1) 返回 12。

返回日期的年份。

示例:日期选取器 Control1 包含日期 2021 年 12 月 20 日。YEAR(Control1) 返回 2021。

其他函数

阵列
从满足某个条件的数据表中返回一列值。ARRAY 至少需要两个参数。
示例:数据录入表(该表具有 4 行)的 Control1 中的 ARRAY(1, 2, 3, 4) 将返回以下结果。
  • 1
  • 2
  • 3
  • 4
错误
生成错误,并显示一条工具提示消息。在公式中,用引号将工具提示文本引起来。用作 IF 语句的一部分。

示例:您创建了一个表单,需要回答“是” 才能继续。如果 Control1 中的值为“是”,则 IF(Control1="是", "继续", ERROR(“该值必须为是才能完成此表单的剩余部分。”)) 返回“继续”;如果 Control1 中的值不是“是”,则返回错误消息。

索引
以 1 为增量返回行或列的索引,从第一行或第一列开始。此函数不使用参数(不要在括号之间插入值)。此函数的公式控件必须位于数据录入表中。
示例:如果数据录入表有 5 行,则 INDEX( ) 将返回以下结果。
  • 1
  • 2
  • 3
  • 4
  • 5
缺少
检查是否缺少值,或公式是否生成错误。返回 1(真)或 0(假)。

示例:Control1 包含一个数字框控件。如果数字框不包含值,则 ISMISSING(Control1) 返回 1,如果数字框包含值,则返回 0。

序列
返回基于起始数字和指定增量的数字序列。此函数的公式控件必须位于数据录入表中。
示例:如果数据录入表有 5 行,则 SEQUENCE(-10, 4) 将返回以下结果。
  • -10
  • -6
  • -2
  • 2
  • 6