2024年2月3日发(作者:)
什么是表达式?
Access 中的表达式相当于 Excel 中的公式。一个表达式由多个单独使用或组合使用以生成某个结果的可能元素组成。元素可能包括标识符(字段名称、控件名称或属性名称)、运算符(如加号 (+) 或减号 (-))、函数、常量和值。您可以使用表达式执行计算、检索控件值、提供查询条件、定义规则、创建计算控件和计算字段,以及定义报表的分组级别。
以下是一些表达式示例。
表达式
=[订购日期]-[发货日期]
Date()
总价: CCur([订单明细].单价*[数量]*(1-[折扣])/100)*100
Between #1/1/2005# And #12/31/2005#
=[订单子窗体].Form!订单小计
> 0
用途
计算报表上两个文本框控件中的值之差
将表中字段的默认值设置为当前日期
创建查询中的计算字段
用于输入查询中―日期/时间‖字段的条件
返回―订单‖窗体的―订单‖子窗体上的―订单小计‖控件的值
设置表中数值字段的有效性规则
正如以上示例表达式所显示的那样,Access 中的表达式不仅仅是一种计算。表达式可用于多种不同的用途。
您可能还注意到示例表达式在某些方面是互不相同的。例如,某些表达式以 = 运算符开头。当计算窗体或报表上某一控件的值时,使用 = 运算符作为表达式的开头。而在其他情况下,则不使用 = 运算符。例如,当您在查询或者字段或控件的―默认值‖或―有效性规则‖属性中输入表达式时,不使用 = 运算符。
标识符
标识符是字段、属性或控件的名称。在表达式中使用标识符可引用与字段、属性或控件关联的值。例如,请看表达式 =[订购日期]-[发货日期]。此表达式将―订购日期‖字段或控件的值减去―发货日期‖字段或控件的值。在此表达式中,―订购日期‖和―发货日期‖都是标识符。
运算符
Access 支持多种运算符,其中包括预期的算术运算符,如 +、-、*(乘)和 /(除),以及用于比较两个值的比较运算符、用于连接文本的文本运算符、用于确定 True 或 False 值的逻辑运算符,还包括 Access 所特有的其他运算符。有关运算符的详细信息,请参见本文的运算符列表一节。
函数
函数是可在表达式中使用的内置程序。可将其用于执行计算、处理文本和日期、汇总数据以及执行多种操作。例如,一个最常用的函数是 Date。Date 函数可返回当前日期。您可以在为表中字段设置默认值的表达式中使用此函数。这样,无论何时添加一条新记录,此字段的默认值都为当前日期。
某些函数需要使用参数。参数是一个充当函数输入的值。如果函数需要使用多个参数,则需要使用逗号将参数分隔开。例如,请考虑以下表达式示例中的 Format 函数:
=Format(Date(),"mmmm d, yyyy")
在此示例中,我们提供两个参数。第一个参数是 Date 函数。通常可以将一个函数返回的值作为参数提供给另一个函数。在本例中,我们提供由 Date 函数返回的当前日期。第二个参数(与第一个参数以逗号分隔)是用于告知 Format 函数如何设置日期格式的文本字符串。请注意,文本字符串应用引号括起来。一般而言,当您需要提供文本时,请将其放在引号中。
1
Access 支持多种内置函数。有关可用函数的更多信息,请参见函数(按类别)(英文)和函数(按字母顺序)(英文)帮助主题。
常量
常量是一种在 Access 运行时其值保持不变的命名数据项。在表达式中最常用到的常量包括
True、False 和 Null。您也可以在 Visual Basic for Applications (VBA) 中定义自己的常量,以在 VBA 程序中使用。VBA 是 Access 使用的编程语言。
注释 您不能在用于表达式的自定义函数中使用 Microsoft Visual Basic 常量。例如,Visual
Basic 具有表示一周中各天的常量:vbSunday 代表星期日、vbMonday 代表星期一,依此类推。每个常量都有一个相应的数值:vbSunday 的数值为 1、vbMonday 的数值为 2,依此类推。您不能在从表达式内部调用的自定义函数中使用这些常量,而必须改用数值。
值
可以在表达式中使用文字值。数值可以是一组数字,包括一个符号和一个小数点(如果需要)。如果没有符号,Access 则认为是一个正值。要使一个值为负值,请包含减号 (-)。也可以使用科学记数法。这时,请添加 E 或 e 以及指数符号(如 1.0E-6)。
文本字符串值应置于引号中。在某些情况下,Access 将为您提供引号。例如,当您在有效性规则或查询条件的表达式中键入文本时,Access 将自动提供引号。
例如,如果您键入文本上海,Access 将在表达式中显示 "上海"。如果您希望表达式生成一个实际用引号括起来的字符串,可以用单 (') 引号或三组双 (") 引号将嵌套字符串括起来。例如,以下表达式是等效的:
Forms![联系人]![城市].DefaultValue = ' "上海" '
Forms![联系人]![城市].DefaultValue = " " "上海" " "
日期/时间值应以编号符号 (#) 括起来。例如,#3-7-05#、#7-Mar-05# 和 #Mar-7-2005# 都是有效的日期/时间值。当 Access 看到以 # 字符括起来的有效日期/时间值时,它会自动将此值视为日期/时间数据类型。
返回页首
为什么要使用表达式?
在 Access 中,您经常会用到表达式,并将其用于多种目的。例如,当您要计算窗体上字段的值时,可以使用表达式。假设您要计算发票中某一行数据项的总金额。通常,您并不将该行数据项总计存储在数据库中,而是在需要时根据应存储在数据库中的两个数据项(数量和价格)来计算此值。
=CCur([数量]*[价格])
此表达式将数量与价格相乘,然后使用 CCur 函数(转换为货币)将结果转换为―货币‖数据类型。
通常使用文本框控件来存储计算值,但是您也可以使用具有―控件来源‖属性的任何控件。将表达式作为其控件来源的控件称为计算控件。如果控件是一个文本框,则可以直接在该文本框中输入表达式。也可以在属性表的―控件来源‖属性中输入表达式。
2
除了使用表达式计算数据库中未存储的所需值外,通常还可以使用表达式提供查询信息。例如,假设您要查看在特定时间范围内发货的产品销售情况。您可以输入一个使用 Between 运算符的条件表达式来定义日期范围。Access 将仅返回符合该条件且发货日期在指定日期范围内的行:
Between #1/1/2004# And #12/31/2004#
您或许还会发现,在查询中计算行数据项总计也是一个非常好的办法,查询可以为窗体或报表提供数据。此类计算得出的查询中的列称为计算字段。例如,以下查询中的表达式可根据适用的折扣来计算行数据项总计:
总价: CCur([订单明细].[单价]*[数量]*(1-[折扣])/100)*100
此表达式将结果列命名为―总价‖。
表达式的另一个好处是为表中的字段或控件提供默认值。例如,如果您要将一个日期字段的默认值设置为当前日期,则可以在该字段的―默认值‖属性中键入 Date()。也可以使用表达式设置有效性规则。例如,您可以使用这样一种有效性规则:要求输入的日期必须大于或等于当前日期。此时,应将―有效性规则‖属性框中的值设置为 >= Date()。
返回页首
在什么地方使用表达式,如何使用表达式
您可以在许多地方使用表达式。例如,在表、查询、窗体、报表和宏中都可以使用表达式。此外,在编写事件过程或模块的 VBA 代码时,通常要使用与 Access 对象(如表或查询)中类似的表达式。
表达式中的字段名称和控件名称必须用括号括起来;例如,[单价]。如果您输入的名称不包含空格或特殊字符,则 Access 会自动用括号将该名称括起来。如果名称包含空格或特殊字符,则必须自己键入括号。
通过设置 Name 属性,可为计算控件命名。在窗体或报表上的所有控件名称中,该名称必须是唯一的。它还必须不同于在该控件的表达式中使用的任何字段或控件名称,而且应不同于基础表或查询中的任何字段名称。当您要在窗体或报表上的其他表达式中引用该控件的值时,可以使用该名称。
最常使用表达式的地方包括:
在窗体或报表上的文本框控件中
可以在文本框控件中使用表达式来创建计算控件。例如,假定您要创建一个小计,以计算某订单窗体上所有行数据项的总和。该小计如下所示。
3
要计算小计,需要在窗体上放置一个文本框控件,并将该文本框的―控件来源‖属性设置为以下表达式:
=Sum([总价])
Sum 函数可计算记录源中一组值的总和,在本例中,记录源是名为―总价‖的列。
在文本框控件中输入表达式
在数据库窗口中的―对象‖下,单击―窗体‖。
单击某个窗体,然后单击数据库窗口中的―设计‖。
单击文本框以将其选中。
在―视图‖菜单上,单击―属性‖以显示该文本框的属性表。
Access 将显示该文本框的属性表。
将文本框的―控件来源‖属性更改为 = 后面跟着表达式,或单击属性框右侧的―生成器‖按钮
使用表达式生成器创建一个表达式。例如,要计算如上所示的小计,请键入 =Sum([总价])。
属性表看上去与下图相似。
关闭该属性表。
在查询设计网格的条件单元格中
可以使用表达式定义查询条件。Access 会只返回与该条件匹配的那些行。例如,假定您要查看发货日期在 2004 年中的所有订单。要输入条件,可在查询中―发货日期‖列的―条件‖单元格中输入下面的表达式:
Between #1/1/2004# And #12/31/2004#
―发货日期‖列看上去与下图相似。
可以使用表达式来确定发货日期是否位于指定的日期范围内。请注意,日期值两侧带有编号
4
符号 (#)。Access 将编号符号内的值视为―日期/时间‖数据类型。
在查询设计网格中输入条件
在数据库窗口中的―对象‖下,单击―查询‖。
单击某个查询,然后单击数据库窗口中的―设计‖。
单击要为其输入匹配条件的列中的条件单元格。
键入条件表达式,或单击工具栏上的―生成器‖按钮 使用表达式生成器创建一个表达式。
注释 条件表达式的前面不要带 = 运算符。
如果希望在较大的区域内输入表达式,请按 Shift+F2 以显示―显示比例‖ 框。
在查询设计网格的字段单元格中
可以使用表达式在查询中创建计算字段。例如,假定您要在查询中显示订单发货的年份。要创建计算字段,可在查询中空列的字段单元格中输入以下表达式:
年份: Format([发货日期],"yyyy")
该表达式使用 Format 函数从―发货日期‖字段中提取年份并将年份格式设置为四位数字。请注意,通过在表达式前面加上年份:,可将结果列命名为―年份‖。
在查询设计视图中输入计算字段
在数据库窗口中的―对象‖下,单击―查询‖。
单击某个查询,然后单击数据库窗口中的―设计‖。
单击希望在其中创建计算字段的列中的字段单元格。
键入表达式,或单击工具栏上的―生成器‖按钮 使用表达式生成器创建一个表达式。表达式格式应以名称开头,后跟一个冒号。例如,键入总价: 作为一个表达式的开头,该表达式将创建一个名为总价的计算字段。
在表中字段的―有效性规则‖属性中
另一个经常使用表达式的地方是表中字段的―有效性规则‖属性。假定您要实施某一规则,该规则可强迫―库存量‖表中的 [单位数量] 字段包含一个大于或等于零的值。也就是说,库存量绝不能为负数。使用下图中所示的表达式可以做到这一点。
5
在表中输入字段的有效性规则
在数据库窗口中的―对象‖下,单击―表‖。
单击某个表,然后单击数据库窗口中的―设计‖。
单击所需字段的字段名称。
单击―有效性规则‖属性框。
键入表达式,或单击属性框右侧的―生成器‖按钮 使用表达式生成器创建一个表达式。
注释 创建有效性规则时,不要在表达式前面加 = 运算符。
使用有效性规则表达式时要记住的重要一点是:这些表达式必须解析为 True 值才能被接受。因此,在本例中,[单位数量] 的值必须 >=0。否则,Access 将显示―有效性文本‖属性框中所示的文本。如果您未在―有效性文本‖属性框中输入任何文本,Access 会显示其自身的消息,以表明您输入了字段的有效性规则所禁止的值。
在控件的―有效性规则‖属性中
还可以设置控件的―有效性规则‖属性。例如,假定您要使用窗体输入报表的日期范围,并希望确保起始日期不要早于 #1/1/2004#。您可以设置要在其中输入起始日期的文本框的―有效性规则‖和―有效性文本‖属性,如下所示。
属性 设置
有效性规则
>=#1/1/2004#
有效性文本 输入的日期不得早于 2004-01-01。
如果您尝试输入一个早于 #1/1/2004# 的日期,则会显示一条消息。单击―确定‖后,将返回到文本框。
为控件输入有效性规则
在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。
单击某个窗体或报表,然后单击数据库窗口中的―设计‖。
6
单击控件以将其选中。
单击工具栏上的―属性‖按钮。
Access 将显示该控件的属性表。
单击―全部‖选项卡,然后单击―有效性规则‖属性框。
键入表达式,或单击属性框右侧的―生成器‖按钮 使用表达式生成器创建一个表达式。
注释 创建有效性规则时,不要在表达式前面加 = 运算符。
还可更改―有效性文本‖属性。
关闭该属性表。
如果输入了有效性规则所禁止的值,则可以在插入点位于控件中时按 Esc,以便恢复为初始值或默认值。然后可以输入一个符合有效性规则的值。
如果控件的―控件来源‖属性是表中的一个字段,那么在通常情况下,除了设置该控件的―有效性规则‖属性外,最好也对字段的该属性进行设置。这样,无论使用哪个窗体或查询来更新字段,都始终会实施该规则。
在表中字段的―默认值‖属性中
可以使用表达式将字段的默认值存储在表中。例如,假定您要在添加新记录时将日期和时间自动插入―订购日期‖字段中。可以使用如下表达式。
该表达式使用 Now 函数将日期和时间插入―订购日期‖字段中。
在表中输入字段的默认值
在数据库窗口中的―对象‖下,单击―表‖。
单击某个表,然后单击数据库窗口中的―设计‖。
单击所需字段的字段名称。
单击―默认值‖属性框。
键入表达式,或单击属性框右侧的―生成器‖按钮 使用表达式生成器创建一个表达式。
如果控件绑定到表中的某个字段,并且该字段具有默认值,则将优先使用该控件的默认值。
在控件的―默认值‖属性中
另一个经常使用表达式的地方是控件的―默认值‖属性。在表中,控件的―默认值‖属性的行为类似于字段的―默认值‖属性。例如,如果您要输入当前日期作为―订购日期‖文本框的默认值,可以使用如下表达式。
7
该表达式使用 Date 函数返回当前日期,但不返回时间。如果该文本框控件绑定到表中的某个字段,并且该字段具有默认值,则将优先使用控件的默认值。通常,最好在表中设置字段的―默认值‖属性,因为只要控件不覆盖此默认值,就始终会应用它。
输入控件的默认值
在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。
单击某个窗体或报表,然后单击数据库窗口中的―设计‖。
单击控件以将其选中。
单击工具栏上的―属性‖按钮。
Access 将显示该控件的属性表。
单击―全部‖选项卡,然后单击―默认值‖属性框。
键入表达式,或单击属性框右侧的―生成器‖按钮 使用表达式生成器创建一个表达式。
关闭该属性表。
在宏中的―条件‖列中
在某些情况下,您可能希望仅在满足特定条件时在宏中执行一个操作或一系列操作。例如,假定您希望仅在―计数器‖文本框的值为 10 时才执行操作。可以使用表达式在宏的―条件‖列中定义条件。
输入执行宏操作的条件
在数据库窗口中的―对象‖下,单击―宏‖。
单击某个宏,然后单击数据库窗口中的―设计‖。
单击与要选择的宏操作对应的―条件‖单元格。
如果看不到―条件‖列,请在―视图‖菜单上单击―条件‖。
键入一个条件表达式。
关闭该宏。
与―有效性规则‖属性一样,―条件‖列表达式是一个条件表达式。它必须解析为 True 或
False。仅在条件为 True 时才执行操作。
在―排序与分组‖框中
可以使用―排序与分组‖框定义报表的分组级别和排序选项。可以根据字段或表达式进行分组。例如,假定您要按国家、姓名和订单 ID 的先后顺序对报表进行分组。如果姓名信息
8
存储在单独的字段(―姓氏‖和―名字‖)中,则需要使用如下图所示的表达式进行分组。
该表达式使用与号 (&) 运算符合并文本值(通常称为字符串连接)。有关合并文本值的更多信息,请参见本文的合并文本值部分。
在―排序与分组‖框中输入表达式
在数据库窗口中的―对象‖下,单击―报表‖。
单击报表,然后单击数据库窗口中的―设计‖。
在―设计‖视图中打开报表。
在―视图‖菜单上,单击―排序与分组‖。
单击―字段/表达式‖列中的单元格。
在 = 运算符后键入一个表达式。
返回页首
使用―表达式生成器‖
―表达式生成器‖可以帮助您创建表达式。―表达式生成器‖是一个可从写入表达式的大多数位置启动的工具。使用它可轻松访问数据库中所用字段和控件的名称,还可访问许多在写入表达式时可以使用的内置函数。可以使用―表达式生成器‖从头开始创建表达式,也可以从一些预先生成的用于显示页码、当前日期、当前日期和时间的表达式中进行选择。
表达式框
生成器的上部包含一个表达式框,可在其中构建表达式。可以使用生成器下面部分的三栏来
9
查找可粘贴到表达式框中的元素。也可以在表达式框中直接键入部分表达式。这样,通过将键入和粘贴操作配合使用,就可以构建一个表达式。
运算符按钮
―表达式生成器‖的中间部分显示了一些常用运算符按钮。要在表达式框中插入运算符,请单击相应的按钮。要显示可在表达式中使用的运算符列表,请单击下方左侧栏中的―操作符‖文件夹,然后在中间栏内单击所需的类别。右侧栏中随即列出选定类别的所有运算符。要插入某一运算符,请双击该运算符,或选中它并单击―粘贴‖。
表达式元素
下面部分包含三栏:
左侧栏显示了一些文件夹,这些文件夹列出了数据库中的表、查询、窗体和报表,以及可用内置函数、用户定义的函数、常量、运算符和通用表达式。
中间栏列出了左侧栏中所选文件夹的特定元素或元素类别。例如,如果单击左侧栏中的―内置函数‖,则中间栏会列出函数类别。
右侧栏列出了左侧栏和中间栏中所选元素的值(如果有)。例如,如果单击左侧栏中的―内置函数‖,然后单击中间栏中的一个函数类别,则右侧栏中会列出选定类别的所有内置函数。
通过在表达式框中键入文本并从生成器的其他区域粘贴元素,可以创建表达式。例如,您可以单击左下方的栏来查看数据库中的任意对象以及函数、常量、运算符和通用表达式。当您单击左侧栏中的数据项时,其他栏会相应地发生变化。例如,当您单击左侧栏中的某个表名称时,中间栏会列出该表中的字段。当您双击―函数‖,然后单击―内置函数‖时,中间栏会列出所有函数类别,而右侧栏会列出这些类别中的函数。当您双击某一函数以将其插入表达式中时,函数和表示该函数所需参数的文本(以占位符文本形式显示)会出现在表达式框中。随后,您可以使用正确的参数值替换该文本。
在将标识符粘贴到表达式中时,―表达式生成器‖只插入当前上下文所需的部分标识符。例如,如果从―客户‖窗体的属性表中启动―表达式生成器‖,然后将该窗体的―Visible‖属性标识符粘贴到表达式中,则―表达式生成器‖只粘贴属性名称―Visible‖。如果在窗体上下文外部使用该表达式,则必须包括完整的标识符:Forms![客户].Visible。
在表、窗体或报表中启动―表达式生成器‖
单击将包含表达式的属性或操作参数框。
单击属性旁边的―生成器‖按钮 。
在查询中启动―表达式生成器‖
单击将包含表达式的设计网格中的单元格。例如,单击希望提供条件的列的―条件‖单元格,或单击希望在其中创建计算字段的列的―字段‖单元格。
单击工具栏上的―生成器‖按钮 。
您可以将―表达式生成器‖看作是查找和插入标识符名称(如字段、表、窗体和查询)等容易忘记的内容的一个方式。
返回页首
表达式的实际应用
本节介绍了使用表达式解决问题和计算窗体、报表和表所需信息的一些方法。
使用当前日期和时间为新记录添加时间戳
在某些表中,在添加记录时不断跟踪(―时间戳‖)日期或日期和时间是很重要的。要让 Access
自动为您填充该值,可以创建一个数据类型为―日期/时间‖的字段,并将该字段的―默认值‖属性设置为 Date() 或 Now()。Date 函数返回在您计算机的系统时钟中存储的当前日期。
10
Now 函数返回当前日期和时间。
添加日期和时间戳字段
在数据库窗口中的―对象‖下,单击―表‖。
单击某个表,然后单击数据库窗口中的―设计‖。
在最上面的空行中,单击―字段名称‖列。
键入字段名称,如―输入日期‖。
单击―数据类型‖列,然后选择―日期/时间‖。
单击―常规‖选项卡,然后单击―默认值‖属性框。
键入 Now() 或 Date(),然后按 Tab 键。
关闭该表。如果 Access 询问是否要保存更改,请单击―是‖。
现在,只要您向表中添加新记录,Access 就会自动将日期或日期和时间插入―输入日期‖字段中。
合并文本值
如果您要合并两个或多个文本字段中的值,可以使用与号 (&) 运算符。例如,您可能希望在―雇员‖窗体的窗体页眉中显示雇员的全名。您可以在主体节的文本框中输入雇员的名字和姓氏。
可以使用下面的表达式显示雇员的全名:
=[名字] & " " & [姓氏]
要合并两个或多个控件中的值,需使用 & 运算符,并且应该用引号括起希望插入的值中间的任何内容(空格、标点符号或未更改的文本)。在本例中,使用字符串 " " 在名字和姓氏之间插入了一个空格。
添加一个包含全名表达式的文本框
在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。
单击某个窗体或报表,然后单击数据库窗口中的―设计‖。
在工具箱中,单击―文本框‖工具。
注释 如果看不到工具箱,请在―视图‖菜单上,单击―工具箱‖。
在窗体或报表上拖动指针,以创建文本框。
单击该文本框以将其选中。
单击―视图‖菜单上的―属性‖,然后单击―数据‖选项卡。
将―控件来源‖属性更改为 =[名字] & " " & [姓氏],然后按 Tab 键。
关闭该属性表。
在某些记录中,您所合并的字段可能没有任何值。这样的空缺值称为 Null 值。在使用 & 运算符和不包含值的字段时,Access 将为该字段返回一个零长度字符串。例如,如果雇员记录只包含姓氏,那么上述示例中的表达式将返回―名字‖字段的零长度字符串、空格和―姓氏‖字段中的值。
在合并值时,您可能希望仅当指定字段不为空时才添加某个值(如逗号)。例如,假定您有一个―客户‖表,并且希望合并报表的―城市‖、―地区‖和―邮政编码‖字段中的值。某些记录的―地区‖字段中可能不包含值。在这种情况下,如果使用 & 运算符,最终―邮政编码‖前面会多出一个逗号。
要删除这个不需要的逗号,可以使用加号 (+) 运算符,如下面的示例表达式所示:
=([城市] & (", " + [地区]) & " " & [邮政编码])
+ 运算符合并文本的方式与 & 运算符相同。但是,+ 运算符还支持 Null 传播。这意味着,如果表达式的任何部分为空,则整个表达式都将为空。在上述示例中,应考虑 (", " + [地区])
部分。因为使用了 + 运算符,所以仅在―地区‖字段中包含值时,括号中的表达式才能包含
11
逗号。如果不包含值,则 Null 传播将发挥作用,并且括号中整个表达式的计算值为空。
创建计算控件以执行算术计算
可以使用表达式对两个或两个以上字段或控件中的值执行加、减、乘、除运算。例如,假设您记录了客户需要接收订单的日期以及发出订单的日期。通过―订购日期‖字段中的值减去―发货日期‖字段中的值可以计算出提前(或延迟)多少天发出订单。之所以能够这样做是因为 Access 可以对日期执行算术计算。
日期计算的结果称为间隔,该值由两部分组成,包含小数点左边的天数部分和小数点右边的时间部分。如果返回的值是一个正数,则可以知道提前多少天发出订单。如果是一个负数,则可以知道推迟多少天发出订单。如果值为 0,就可以知道订单是按时发出的。
添加一个带有表达式的文本框,以计算提前或延迟的天数
在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。
单击某个窗体或报表,然后在数据库窗口中单击―设计‖。
在工具箱中,单击―文本框‖工具。
注释 如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。
在窗体或报表中拖动指针以创建文本框。
单击文本框以选中它。
单击―视图‖菜单上的―属性‖,然后单击―数据‖选项卡。
将―控件来源‖属性更改为 =[订购日期]-[发货日期],然后按 Tab 键。
关闭属性表。
在使用 +、–、*、/ 或 运算符对两个值进行计算,而其中一个值为 Null(即没有输入任何值)时,表达式的值也为 Null。例如,如果上述表达式中的一个日期为 Null,则整个表达式的值也将为 Null。在报表中,这会导致显示空白区域。如果要将 Null 值替换为 0,则可以使用 Nz 函数将 Null 值转换为零。例如:
=Nz([订购日期]-[发货日期],0)
注释 可以对表中的字段进行设计,以使用户无法输入 Null 值。在设计表时,请将该字段的―必填‖属性设置为―是‖。还应将该字段的―默认值‖属性设置为一个非 Null 值。
将两个控件中的值相加
通常,您可能需要将两个控件中的值加在一起。例如,要计算订单的总成本,则需要将―小计‖和―运费‖控件中的值加在一起,如下图所示。
要计算订单合计,可以在―订单‖窗体的主体节中创建一个文本框。
添加一个带有计算合计表达式的文本框
在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。
单击某个窗体或报表,然后在数据库窗口中单击―设计‖。
在工具箱中,单击―文本框‖工具。
注释 如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。
在窗体或报表中拖动指针以创建文本框。
单击文本框以选中它。
单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。
按下表所示设置属性值。
12
属性
名称
设置
合计
控件来源 =[小计]+[运费]
格式 货币
关闭属性表。
将两个值相乘以计算销售税
假设您需要计算订单的销售税,并且销售税率存储在―销售税‖控件中,可以用―小计‖控件中的值乘以―销售税‖控件中的值来计算销售税。
要计算销售税,请在―订单‖窗体的主体节中创建一个文本框。
添加一个带有表达式的文本框以计算销售税
在数据库窗口中的―对象‖下,单击―窗体‖或―报表‖。
单击某个窗体或报表,然后在数据库窗口中单击―设计‖。
在工具箱中,单击―文本框‖工具。
注释 如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。
在窗体或报表中拖动指针以创建文本框。
单击文本框以选中它。
单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。
按下表所示设置属性值。
属性
名称
设置
销售税
控件来源 =[小计]*[销售税率]
格式 货币
关闭属性表。
汇总和计数
通常,您需要计算存储在一组记录中的值的总和。例如,您可能需要计算报表中组页脚的组总计数,或者计算窗体中行数据项的订单小计。有时候,您可能需要计算数据项数,而不是对它们汇总。要计算一组记录的总和,您需要使用 Sum 函数,要计算一组记录的数目,则需要使用 Count 函数。
例如,要计算按客户分组显示订单的报表中订单的数目,可以使用下面的表达式:
=Count([订单ID])
可以使用 Sum 和 Count 函数的参数表达式中的字段名称,但不使用控件名。字段名称可以来自表或查询。甚至还可以使用查询中计算字段的名称。不过,如果想要得到计算控件中值的总计,必须在 Sum 函数中重复在计算控件中使用的表达式。
如果想在窗体中多次引用同一表达式,或者要使用某个函数(如 Sum),则应考虑在窗体的基本查询中是否可以包含该表达式。这样就可以在查询中(而不在窗体中)执行计算。而在查询中执行计算的速度通常比较快。
有关汇总与计数的详细信息,请参见下面的文章:
使用 Access:报表中的汇总(英文)
使用 Access:报表中的计数(英文)
13
Sum 函数(英文)
Count 函数(英文)
DSum 函数(英文)
DCount 函数(英文)
计算子窗体中的订单小计
在创建订单窗体时,经常使用一个主窗体和一个子窗体。主窗体和子窗体由公共字段(如―订单ID‖)链接。主窗体包含订单明细,如―付款人‖和―收货人‖信息,子窗体包含有关已订购的行数据项的详细信息,如产品、数量和单价。主窗体中的信息来自一个包含―订单‖表的查询。子窗体中的信息来自一个包含―订单明细‖表的查询。
如果使子窗体以一个包括计算字段的查询为基础来计算总价,则可以对―总价‖字段中的值进行求和,以计算小计。要计算订单小计,请在―订单‖子窗体的窗体页脚中创建一个文本框。
在子窗体中添加一个带有计算订单小计的表达式的文本框
在数据库窗口中的―对象‖下,单击―窗体‖。
单击子窗体,然后单击数据库窗口中的―设计‖。
在工具箱中,单击―文本框‖工具。
注释 如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。
在窗体上拖动指针以创建文本框。
单击文本框以选中它。
单击―视图‖菜单上,单击―属性‖,然后单击―全部‖选项卡。
按下表所示设置属性值。
属性
名称
设置
订单小计
控件来源 =Sum([总价])
格式 货币
关闭属性表。
尽管是在子窗体上的文本框中计算订单小计的,但该值仅显示在主窗体中。要隐藏子窗体中的文本框,可以将其放在子窗体的窗体页脚中,并将子窗体的―默认视图‖属性设置为―数据表视图‖。在数据表视图中使用窗体时,Access 不显示窗体页眉或页脚。最后,可将子窗体插入主窗体中。
子窗体通常不能作为独立的窗体正常工作。子窗体通常被设计为依赖于主窗体中的某个值。仅在将子窗体插入主窗体中并建立了链接两个窗体的字段(如―订单ID‖)后,Access 才会将子窗体限制到适当的记录。例如,在将―订单‖窗体与子窗体一起使用时,主窗体上的―订单 ID‖将限制子窗体中具有相同订单 ID 号的记录。
引用主窗体上的订单小计
主窗体和子窗体上的控件可以相互引用。要引用子窗体上的值,可以使用一个表达式。如下图所示。
14
主窗体上子窗体控件的名称
―窗体‖属性,它提供了对子窗体的控件和属性的访问
子窗体上文本框控件的名称
要显示订单小计,请在―订单‖窗体的主体节中创建一个文本框。
将子窗体的小计显示在―订单‖窗体主体节的文本框中
在数据库窗口中的―对象‖下,单击―窗体‖。
单击―订单‖窗体,然后单击数据库窗口中的―设计‖。
在工具箱中,单击―文本框‖工具。
注释 如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。
在窗体的主体节中拖动指针以创建文本框。
单击文本框以选中它。
单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。
按下表所示设置属性值。
属性
名称
设置
小计
控件来源 =[订单子窗体].Form![订单小计]
格式 货币
关闭属性表。
查找表中的值
在设计窗体时,您可能需要显示窗体没有绑定到的表或查询中的值。例如,您可能有一个绑定到―产品‖表中的―产品‖窗体。但在设计该窗体之后,您决定让它显示供应商联系人的姓名。而供应商联系人的姓名来自―供应商‖表。
可以使用 DLookup 函数查找和显示另一个表或查询中的值。应为 DLookup 函数提供三个参数:
要查找其值的字段的名称
字段所在的表或查询
用于查找记录的条件
要添加供应商联系人,请在设计视图中打开―产品‖窗体,然后添加带有联系人姓名标签的文本框。用于该文本框的表达式为:
=DLookup("[联系人姓名]","[供应商]","[供应商ID]=" & Forms!Products!SupplierID)
添加供应商联系人文本框
在数据库窗口中的―对象‖下,单击―窗体‖。
单击―产品‖窗体,然后单击数据库窗口中的―设计‖。
在工具箱中,单击―文本框‖工具。
注释 如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。
在窗体中拖动指针以创建文本框。
单击文本框以选中它。
15
单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。
按下表所示设置属性值。
属性
标签
控件来源
设置
联系人姓名
=DLookup("[联系人姓名]","[供应商]","[供应商Forms!Products!SupplierID)
ID]=" &
关闭属性表。
该表达式可对―供应商‖表进行搜索,并返回其供应商 ID 与―产品‖窗体上―供应商ID‖控件中的值相匹配的供应商的联系人姓名。请注意使用 & 运算符构建第三个参数的方式。应避免的一个常见错误是用引号将整个参数括起来,而不是仅将 & 运算符前面的文本括起来。
注释 作为使用 DLookup 函数的一种替代方法,可以更改基本查询以包括所需的信息。使用查询通常更为高效。
打印报表中显示的日期
对于许多报表,您可能需要打印生成报表的日期。要让 Access 为您填写日期,请使用 Now
函数或 Date 函数。Now 函数可返回在计算机时钟内存储的当前日期和时间。Date 函数仅返回当前日期。可以使用任意一种可用的日期和时间格式来设置这两个函数的结果格式。
假设您想打印一份发票报表,并想打印以―中日期‖格式显示的发票日期(例如,31-Dec-04)。请在文本框或文本框的―控件来源‖属性中键入表达式 =Date() 。
将打印日期添加到报表中
在数据库窗口中的―对象‖下,单击―报表‖。
单击某个报表,然后在数据库窗口中单击―设计‖。
在工具箱中,单击―文本框‖工具。
注释 如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。
在报表中拖动指针以创建文本框。
注释 如果看不到页面页脚,请在―视图‖菜单上单击―页面页眉/页脚‖。
单击文本框以选中它。
单击―视图‖菜单上的―属性‖,然后单击―全部‖选项卡。
按下表所示设置属性值。
属性
名称
设置
打印日期
控件来源
=Date()
格式 中日期
关闭属性表。
在报表中显示页码
如果所设计的报表超过一页,则可能需要添加页码。可以使用―页码‖属性添加页码,该属性可在预览或打印报表时自动显示页数。―页码‖属性仅在预览或打印报表时可用,因此在属性表中并不显示。
可以像使用函数(如 Now 或 Date)一样使用文本框的―控件来源‖属性中的―页码‖属性。将文本框放在报表的页面页眉或页面页脚中(注意,不包括―页码‖属性后面的括号)。
16
可以同时使用―页码‖属性和―总页数‖属性来构建一个表达式。―总页数‖属性可返回报表中的总页数。例如,下面的表达式将生成格式为第 1 页 共 10 页的页面编号。
="第 " & [Page] & " 页 " & "共 " & [Pages] & " 页"
向报表中添加页面编号的前置样式
在数据库窗口中的―对象‖下,单击―报表‖。
单击某个报表,然后在数据库窗口中单击―设计‖。
在工具箱中,单击―文本框‖工具。
注释 如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。
在报表的页面页脚部分拖动指针以创建文本框。
注释 如果看不到页面页脚,请在―视图‖菜单上单击―页面页眉/页脚‖。
单击文本框以选中它。
单击―视图‖菜单上的―属性‖,然后单击―数据‖选项卡。
将―控件来源‖属性框中的值更改为 ="Page " & [Page] &" of " & [Pages]。
关闭属性表。
注释 在―表达式生成器‖中,Access 提供了一些用于页面编号的通用表达式。
显示报表中的部分值
如果一个字段中的前几个或最后几个字符有特殊含义,则可以围绕这些字符来组织报表。例如,如果产品标识代码中的前两个字符指示产品的类型,则可以按代码中的前两个字符对产品进行分组,然后在组页眉中显示这些字符来标识每个组。
使用 Left 函数可提取文本字段值中前 n 个字符,使用 Right 函数可提取最后 n 个字符。在这两种情况中,第一个参数是字段名称或文本表达式,第二个参数是要提取的字符数。
下表显示了利用这两个函数的表达式。
如果―部分 ID‖中的值为 使用的表达式
AA105
AA105
=Left([部分ID],2)
返回的值
AA
=Right([部分ID],3)
105
有关 Left 函数和 Right 函数的详细信息,请参见 Left 函数(英文)和 Right 函数(英文)文章。
在按字母顺序排列的列表中使用字母分隔符
为了在产品列表中进行快速查找,可以按产品名称的第一个字母对产品进行分组,并在组页眉中显示该字母,如下图所示。
17
要每次在产品名称的第一个字母改变时开始一个新组,并按字母顺序对每个组中的产品进行排序,请按下表所示设置―排序与分组‖框中的属性。
字段/
表达式
排序 组
次序 组页眉 组页脚 依据
可以
组间距 保持同页
整个组
不可以
产品名称 升序 可以 前缀字符
1
1
产品名称 升序 不可以 不可以 每个值
显示―排序与分组‖框
在―设计视图‖中打开报表。
在―视图‖菜单上,单击―排序与分组‖(或单击工具栏上的―排序与分组‖)。
要在一个新组的开始处仅显示名称的第一个字母,请在―产品名称‖标题的文本框中使用下面的表达式:
=Left([产品名称],1)
显示日期的对应数值
可以按一段时间的数值组织报表中的记录 — 时间段可以是年、季度、月或周。例如,一年分为 53 个日历周(一年的第一周和最后一周通常不完整)。例如,从 1994 年 12 月 18 日到 1994 年 12 月 24 日之间的一周的数值为 52。使用这些数值,可以按一年中的第几周对发送的订单进行分组。
要查找某个日期的数值,可以使用 DatePart 函数。该函数的格式为:
DatePart(interval, date)
interval 参数是要返回的日期部分的缩写。有效的缩写示例为:―yyyy‖表示四位数字格式的年份,―q‖表示日历季度,―m‖表示月份。date 参数是字段名称或文本日期,如―1-Jul-94‖。
注释 还可以选择向 DatePart 函数添加两个参数 — 一个表示一周的第一天,另一个表示一年的第一周。在这两个参数中,可以接受通过 FirstWeekday 和 FirstWeek 视图选项设置的值,也可以自己指定值。
下表列出了为字段名―假日‖返回的结果示例。―假日‖字段可存储与您的公司有业务往来的国家/地区的假日。
如果―假日‖中的值为 使用的表达式
返回的值
18
1-Jan-94
31-Dec-94
31-Dec-94
=DatePart("w",[假日])
=DatePart("ww",[假日])
7(一周的第几天)
53(一年的第几周)
=DatePart("yyyy",[假日]) 1994(一年的四位数字)
有关使用 DatePart 函数的详细信息,请参见文章 DatePart 函数(英文)。
要了解有关创建分组报表的详细信息,请参见文章创建分组或汇总报表。
比较多个年份的结果
如果需要对一年以上的销售结果进行分析,那么按时间段(例如按季度或月份)对结果进行分组比较方便。这样,可以快速查看一年中某个时间段的业绩与另一年中的相同时间段的业绩的比较结果。例如,假设您想查看显示发送的订单数量和销售总计的―按季度汇总销售额‖报表。
要创建组页眉和页脚以及指定该报表的排序次序,请按下表所示设置―排序与分组‖框中的属性。注意,在发送订单时是使用表达式按季度进行分组的。
字段/
表达式
排序
次序
组
组页眉 组页脚 依据
可以 可以
组间距 保持同页
可以
=DatePart("q",
升序
[发货日期])
发货日期
发货日期
订单 ID
升序
升序
升序
每个值
1
不可以
不可以
不可以
可以
不可以
不可以
年
1
不可以
不可以
不可以
每个值
1
每个值
1
显示―排序与分组‖框
在―设计视图‖中打开报表。
在―视图‖菜单上,单击―排序与分组‖(或单击工具栏上的―排序与分组‖)。
要在一个新组的开头显示某个季度,请使用以下与―排序与分组‖框中相同的表达式,在组页
19
眉中放置一个文本框:
=DatePart("q", [发货日期])
计算行数据项总数
假设您需要一个显示有关订单信息的发票报表,并且需要计算行数据项的总价(每种产品的总销售额)。请首先创建一个提供报表数据的查询,在该查询中包括所需表(如―订单‖表、―订单明细‖表和―客户‖表)中所有需要的字段。然后可以在查询设计网格中创建一个计算字段,以计算发票上每种产品的总价。
创建计算字段
在数据库窗口中的―对象‖下,单击―查询‖。
单击某个查询,然后单击数据库窗口中的―设计‖。
在查询设计网格中,单击一个空列的―字段‖行。
在―字段‖单元格中键入一个名称、冒号 (:) 和一个表达式。要计算总价,可以使用如下表达式:
总价: CCur([订单明细].单价*[数量]*(1-[折扣])/100)*100
请注意,在查询设计网格中创建计算字段时,请不要在表达式前面使用 = 运算符。
标识延迟发送的订单
在最佳情况下,订单应按时发送,但有些订单偶尔可能会在订购日期之后发出,而且您想在报表中标识这些订单。要在跟踪发货的报表中标记所有延迟发送的订单,可以在标记为―延迟发送‖的复选框中显示一个复选标记。由于多数订单都是按时发送的,复选标记比标记为―按时‖或―延迟‖的文本更容易找到。
该报表的表达式将―发货日期‖字段中的值与―订购日期‖字段中的值进行比较。如果―发货日期‖字段中的值大于(即一个较晚的日期)―订购日期‖字段中的值,该表达式将返回值 True,并且报表将在复选框中显示一个复选标记。如果值为 False,报表将保留该复选框为空。
向报表中添加―延迟发送‖复选框
在数据库窗口中的―对象‖下,单击―报表‖。
单击某个报表,然后在数据库窗口中单击―设计‖。
在工具箱中,单击―复选框‖工具。
注释 如果工具箱不可见,请在―视图‖菜单中,单击―工具箱‖。
在报表的主体节中拖动指针以创建复选框。
单击该复选框将其选中。
在―视图‖菜单上选择―属性‖,然后单击―全部‖选项卡。
按下表所示设置复选框的属性。
属性
名称
设置
延迟发送
控件来源 =[发货日期]>[订购日期]
可见性 可以
关闭属性表。
返回页首
运算符表
20
Access 支持多种运算符,其中包括算术运算符,如 +、-、*(乘)和 /(除),以及用于比较值的比较运算符、用于连接文本的文本运算符、用于确定 True 或 False 值的逻辑运算符,还包括 Access 所特有的其他运算符。有关使用这些运算符的详细信息,请参见以下各节:
算术运算符
使用算术运算符可计算两个或多个数字的值,或者将某个数字的符号从正更改为负。
运算符
+
-
*
/
用途
求两个数的和。
示例
[小计]+[销售税]
求两个数的差或者[价格]-[折扣]
指示某个数的负值。
将两个数相乘。
用第一个数除以第二个数。
将两个数都舍入为整数,然后用第一个数除以第二个数。并将结果舍入为一个整数。
用第一个数除以第二个数,且仅返回余数。
[数量]*[价格]
[总计]/[数据项计数]
[登记人数][房间数]
Mod
[登记人数]Mod[房间数]
^
将一个数的乘方表数字^指数
示为指数幂的形式。
比较运算符
可以使用比较运算符来比较值,并返回结果 True、False 或 Null。
运算符
<
<=
>
>=
=
<>
用途
确定第一个值是否小于第二个值。
确定第一个值是否小于或等于第二个值。
确定第一个值是否大于第二个值。
确定第一个值是否大于或等于第二个值。
确定第一个值是否等于第二个值。
确定第一个值是否不等于第二个值。
在所有情况下,如果第一个值或第二个值为 Null,则结果也为 Null。因为 Null 表示一个未知的值,任何与 Null 进行比较的结果也是未知的。
逻辑运算符
可以使用逻辑运算符合并两个值,并返回 True、False 或 Null 结果。您还可能看到称为布尔运算符的逻辑运算符。
运算符
And
用法
Expr1 And Expr2
说明
当 Expr1 和 Expr2
21
均为 True 时,结果为
True。
Or Expr1 Or Expr2
当 Expr1 或 Expr2
为 True 时,结果为
True。
当 Expr1 和 Expr2
同时为 True 或同时为 False 时,结果为
True。
当 Expr 不为 True
时,结果为 True。
当 Expr1 为 True,或者 Expr2 为 True
时,结果为 True,但两者不能同时为
True。
Eqv Expr1 Eqv Expr2
Not
Xor
Not Expr
Expr1 Xor Expr2
连接运算符
可以使用连接运算符将两个文本值合并成一个值。
运算符
&
+
用法
string1 & string2
string1 + string2
说明
将两个字符串合并为一个字符串。
将两个字符串合并为一个字符串并传播
null 值。
特殊运算符
可以按下表所述使用特殊运算符。
运算符
Is (Not) Null
Like "模式"
说明 详细信息
确定一个值为 Null
或者为非 Null。
使用通配符 ? 和 Like 运算符
* 来匹配字符串值。
确定数值或日期值是否在某个范围内。
确定某个字符串值是否在一组字符串值内。
And 运算符
Between val1 And val2
In()
In 运算符
22
EXCEL函数
函数的种类
Excel函数一共有11类,分别是数据库函数、日期与时间函数、工程函数、财务函数、信息函数、逻辑函数、查询和引用函数、数学和三角函数、统计函数、文本函数以及用户自定义函数。
1.数据库函数--当需要分析数据清单中的数值是否符合特定条件时,可以使用数据库工作表函数。例如,在一个包含销售信息的数据清单中,可以计算出所有销售数值大于 1,000 且小于 2,500 的行或记录的总数。Microsoft Excel 共有 12 个工作表函数用于对存储在数据清单或数据库中的数据进行分析,这些函数的统一名称为
Dfunctions,也称为 D 函数,每个函数均有三个相同的参数:database、field 和
criteria。这些参数指向数据库函数所使用的工作表区域。其中参数 database 为工作表上包含数据清单的区域。参数 field 为需要汇总的列的标志。参数 criteria 为工作表上包含指定条件的区域。
Excel进阶
● Excel进阶技巧(一)
● Excel进阶技巧(二)
● Excel进阶技巧(三)
● Excel进阶技巧(四)
● Excel进阶技巧(五)
2.日期与时间函数--通过日期与时间函数,可以在公式中分析和处理日期值和时间值。
3.工程函数--工程工作表函数用于工程分析。这类函数中的大多数可分为三种类型:对复数进行处理的函数、在不同的数字系统(如十进制系统、十六进制系统、八进制系统和二进制系统)间进行数值转换的函数、在不同的度量系统中进行数值转换的函数。
4.财务函数--财务函数可以进行一般的财务计算,如确定贷款的支付额、投资的未来值或净现值,以及债券或息票的价值。财务函数中常见的参数:
未来值 (fv)--在所有付款发生后的投资或贷款的价值。
期间数 (nper)--投资的总支付期间数。
付款 (pmt)--对于一项投资或贷款的定期支付数额。
现值 (pv)--在投资期初的投资或贷款的价值。例如,贷款的现值为所借入的本金数额。
利率 (rate)--投资或贷款的利率或贴现率。
类型 (type)--付款期间内进行支付的间隔,如在月初或月末。
5.信息函数--可以使用信息工作表函数确定存储在单元格中的数据的类型。信息函数包含一组称为 IS 的工作表函数,在单元格满足条件时返回 TRUE。例如,如果单元格包含一个偶数值,ISEVEN 工作表函数返回 TRUE。如果需要确定某个单元
23
格区域中是否存在空白单元格,可以使用 COUNTBLANK 工作表函数对单元格区域中的空白单元格进行计数,或者使用 ISBLANK 工作表函数确定区域中的某个单元格是否为空。
6.逻辑函数--使用逻辑函数可以进行真假值判断,或者进行复合检验。例如,可以使用 IF 函数确定条件为真还是假,并由此返回不同的数值。
7.查询和引用函数--当需要在数据清单或表格中查找特定数值,或者需要查找某一单元格的引用时,可以使用查询和引用工作表函数。例如,如果需要在表格中查找与第一列中的值相匹配的数值,可以使用 VLOOKUP 工作表函数。如果需要确定数据清单中数值的位置,可以使用 MATCH 工作表函数。
8.数学和三角函数--通过数学和三角函数,可以处理简单的计算,例如对数字取整、计算单元格区域中的数值总和或复杂计算。
9.统计函数--统计工作表函数用于对数据区域进行统计分析。例如,统计工作表函数可以提供由一组给定值绘制出的直线的相关信息,如直线的斜率和 y 轴截距,或构成直线的实际点数值。
10.文本函数--通过文本函数,可以在公式中处理文字串。例如,可以改变大小写或确定文字串的长度。可以将日期插入文字串或连接在文字串上。下面的公式为一个示例,借以说明如何使用函数 TODAY 和函数 TEXT 来创建一条信息,该信息包含着当前日期并将日期以"dd-mm-yy"的格式表示。
11.用户自定义函数--如果要在公式或计算中使用特别复杂的计算,而工作表函数又无法满足需要,则需要创建用户自定义函数。这些函数,称为用户自定义函数,可以通过使用 Visual Basic for Applications 来创建。
以上对Excel函数及有关知识做了简要的介绍,在以后的文章中笔者将逐一介绍每一类函数的使用方法及应用技巧。但是由于Excel的函数相当多,因此也可能仅介绍几种比较常用的函数使用方法,其他更多的函数您可以从Excel的在线帮助功能中了解更详细的资讯。
===============================================================================================
EXCEL函数大全
一、数据库和清单管理函数
DAVERAGE 返回选定数据库项的平均值
DCOUNT 计算数据库中包含数字的单元格的个数
DCOUNTA 计算数据库中非空单元格的个数
DGET 从数据库中提取满足指定条件的单个记录
DMAX 返回选定数据库项中的最大值
DMIN 返回选定数据库项中的最小值
DPRODUCT 乘以特定字段(此字段中的记录为数据库中满足指定条件的记录)中的值
DSTDEV 根据数据库中选定项的示例估算标准偏差
24
DSTDEVP 根据数据库中选定项的样本总体计算标准偏差
DSUM 对数据库中满足条件的记录的字段列中的数字求和
DVAR 根据数据库中选定项的示例估算方差
DVARP 根据数据库中选定项的样本总体计算方差
GETPIVOTDATA 返回存储在数据透视表中的数据
二、日期和时间函数
DATE 返回特定时间的系列数
DATEDIF 计算两个日期之间的年、月、日数
DATEVALUE 将文本格式的日期转换为系列数
DAY 将系列数转换为月份中的日
DAYS360 按每年360天计算两个日期之间的天数
EDATE 返回在开始日期之前或之后指定月数的某个日期的系列数
EOMONTH 返回指定月份数之前或之后某月的最后一天的系列数
HOUR 将系列数转换为小时
MINUTE 将系列数转换为分钟
MONTH 将系列数转换为月
NETWORKDAYS 返回两个日期之间的完整工作日数
NOW 返回当前日期和时间的系列数
SECOND 将系列数转换为秒
TIME 返回特定时间的系列数
TIMEVALUE 将文本格式的时间转换为系列数
TODAY 返回当天日期的系列数
WEEKDAY 将系列数转换为星期
WORKDAY 返回指定工作日数之前或之后某日期的系列数
YEAR 将系列数转换为年
YEARFRAC 返回代表START_DATE(开始日期)和END_DATE(结束日期)之间天数的以年为单位的分数
三、DDE 和外部函数
CALL 调用动态链接库(DLL)或代码源中的过程
返回已注册的指定DLL或代码源的注册ID
T 连接外部数据源,并从工作表中运行查询,然后将结果作为数组返回,而无需进行宏编程。
有关CALL和REGISTER函数的其他信息
四、工程函数
BESSELI 返回经过修改的贝塞尔函数IN(X)
BESSELJ 返回贝塞尔函数JN(X)
BESSELK 返回经过修改的贝塞尔函数KN(X)
BESSELY 返回贝塞尔函数YN(X)
25
XLFCTBIN2DEC、BIN2DEC 将二进制数转换为十进制数
BIN2HEX 将二进制数转换为十六进制数
BIN2OCT 将二进制数转换为八进制数
COMPLEX 将实系数和虚系数转换为复数
CONVERT 将一种度量单位制中的数字转换为另一种度量单位制
DEC2BIN 将十进制数转换为二进制数
DEC2HEX 将十进制数转换为十六进制数
DEC2OCT 将十进制数转换为八进制数
DELTA 检测两个值是否相等
ERF 返回误差函数
ERFC 返回余误差函数
GESTEP 检测数字是否大于某个阈值
HEX2BIN 将十六进制数转换为二进制数
HEX2DEC 将十六进制数转换为十进制数
HEX2OCT 将十六进制数转换为八进制数
IMABS 返回复数的绝对值(模)
IMAGINARY 返回复数的虚系数
IMARGUMENT 返回参数THETA,一个以弧度表示的角
IMCONJUGATE 返回复数的共轭复数
IMCOS 返回复数的余弦
IMDIV 返回两个复数的商
IMEXP 返回复数的指数
IMLN 返回复数的自然对数
IMLOG10 返回复数的常用对数
IMLOG2 返回复数的以2为底数的对数
IMPOWER 返回复数的整数幂
IMPRODUCT 返回两个复数的乘积
IMREAL 返回复数的实系数
IMSIN 返回复数的正弦
IMSQRT 返回复数的平方根
IMSUB 返回两个复数的差
IMSUM 返回两个复数的和
OCT2BIN 将八进制数转换为二进制数
OCT2DEC 将八进制数转换为十进制数
OCT2HEX 将八进制数转换为十六进制数
五、财务函数
ACCRINT 返回定期付息有价证券的应计利息
ACCRINTM 返回到期一次性付息有价证券的应计利息
26
AMORDEGRC 返回每个会计期间的折旧值
AMORLINC 返回每个会计期间的折旧值
COUPDAYBS 返回当前付息期内截止到成交日的天数
COUPDAYS 返回成交日所在的付息期的天数
COUPDAYSNC 返回从成交日到下一付息日之间的天数
COUPNCD 返回成交日过后的下一付息日的日期
COUPNUM 返回成交日和到期日之间的利息应付次数
COUPPCD 返回成交日之前的上一付息日的日期
CUMIPMT 返回两个期间之间累计偿还的利息数额
CUMPRINC 返回两个期间之间累计偿还的本金数额
DB 使用固定余额递减法,返回一笔资产在指定期间内的折旧值
DDB 使用双倍余额递减法或其他指定方法,返回一笔资产在指定期间内的折旧值
DISC 返回有价证券的贴现率
DOLLARDE 将按分数表示的价格转换为按小数表示的价格
DOLLARFR 将按小数表示的价格转换为按分数表示的价格
DURATION 返回定期付息有价证券的修正期限
EFFECT 返回实际年利率
FV 返回投资的未来值
FVSCHEDULE 基于一系列复利返回本金的未来值
INTRATE 返回一次性付息证券的利率
IPMT 返回给定期间内投资的利息偿还额
IRR 返回一组现金流的内部收益率
ISPMT 计算在投资的特定期间内支付的利息
MDURATION 返回假设面值0的有价证券的MACAULEY修正期限
MIRR 返回正负现金流使用不同利率的修正内部收益率
NOMINAL 返回名义年利率
NPER 返回投资的期数
NPV 基于一系列现金流和固定的各期贴现率,返回一项投资的净现值
ODDFPRICE 返回首期付息日不固定的面值0的有价证券的价格
ODDFYIELD 返回首期付息日不固定的有价证券的收益率
ODDLPRICE 返回末期付息日不固定的面值0的有价证券的价格
ODDLYIELD 返回末期付息日不固定的有价证券的收益率
PMT 返回投资或贷款的每期付款额
PPMT 返回投资在某一给定期次内的本金偿还额
PRICE 返回定期付息的面值0的有价证券的价格
PRICEDISC 返回折价发行的面值0的有价证券的价格
PRICEMAT 返回到期付息的面值0的有价证券的价格
27
PV 返回投资的现值
RATE 返回年金的各期利率
RECEIVED 返回一次性付息的有价证券到期收回的金额
SLN 返回一项资产每期的直线折旧费
SYD 返回某项资产按年限总和折旧法计算的某期的折旧值
TBILLEQ 返回国库券的债券等效收益率
TBILLPRICE 返回面值0的国库券的价格
TBILLYIELD 返回国库券的收益率
VDB 使用递减余额法,返回指定期间内或某一时间段内的资产折旧额 XIRR 返回一组不定期发生的现金流的内部收益率
XNPV 返回一组不定期发生的现金流的净现值
YIELD 返回定期付息有价证券的收益率
YIELDDISC 返回折价发行的有价证券的年收益率,例如:国库券
YIELDMAT 返回到期付息的有价证券的年收益率
六、信息函数
CELL 返回有关单元格格式、位置或内容的信息
COUNTBLANK 计算区域中空单元格的个数
返回对应于错误类型的数字
INFO 返回有关当前操作环境的信息
ISBLANK 如果值为空,则返回TRUE。
ISERR 如果值为除#N/A以外的错误值,则返回TRUE。
ISERROR 如果值为任何错误值,则返回TRUE。
ISEVEN 如果数为偶数,则返回TRUE。
ISLOGICAL 如果值为逻辑值,则返回TRUE。
ISNA 如果值为 #N/A 错误值,则返回TRUE。
ISNONTEXT 如果值不是文本,则返回TRUE。
ISNUMBER 如果值为数字,则返回TRUE。
ISODD 如果数字为奇数,则返回TRUE。
ISREF 如果值为引用,则返回TRUE。
ISTEXT 如果值为文本,则返回TRUE。
N 返回转换为数字的值
NA 返回错误值#N/A
XLFCTTYPE TYPE 返回表示值的数据类型的数字
七、逻辑函数
AND 如果所有参数为TRUE,则返回TRUE
FALSE 返回逻辑值FALSE
IF 指定要执行的逻辑检测
NOT 反转参数的逻辑值
28
OR 如果任何参数为TRUE,则返回TRUE
TRUE 返回逻辑值TRUE
八、查找和引用函数
ADDRESS 以文本形式返回对工作表中单个单元格的引用
AREAS 返回引用中的区域数
CHOOSE 从值的列表中选择一个值
COLUMN 返回引用的列号
COLUMNS 返回引用中的列数
HLOOKUP 查找数组的顶行并返回指示单元格的值
HYPERLINK 创建快捷方式或跳转,打开存储在网络服务器、企业内部网或INTERNET上的文档
INDEX 使用索引从引用或数组中选择值
INDIRECT 返回由文本值表示的引用
LOOKUP 在向量或数组中查找值
MATCH 在引用或数组中查找值
OFFSET 从给定引用中返回引用偏移量
ROW 返回引用的行号
ROWS 返回引用中的行数
TRANSPOSE 返回数组的转置
VLOOKUP 查找数组的第一列并移过行,然后返回单元格的值
九、数学和三角函数
ABS 返回数的绝对值
ACOS 返回数的反余弦
ACOSH 返回数的反双曲余弦值
ASIN 返回数的反正弦
ASINH 返回数的反双曲正弦值
ATAN 返回数的反正切
ATAN2 从X和Y坐标返回反正切
ATANH 返回参数的反双曲正切值
CEILING 对数字取整为最接近的整数或最接近的多个有效数字
COMBIN 返回给定数目对象的组合数
COS 返回数的余弦
COSH 返回数的双曲线余弦
COUNTIF 计算符合给定条件的区域中的非空单元格数
DEGREES 将弧度转换为度
EVEN 将数向上取整至最接近的偶数整数
EXP 返回E的指定数乘幂
FACT 返回数的阶乘
29
FACTDOUBLE 返回参数NUMBER的半阶乘
FLOOR 将参数NUMBER沿绝对值减小的方向取整
GCD 返回最大公约数
INT 将数向下取整至最接近的整数
LCM 返回最小公倍数
LN 返回数的自然对数
LOG 返回数的指定底数的对数
LOG10 返回以10为底的对数
MDETERM 返回数组的矩阵行列式
MINVERSE 返回数组的反矩阵
MMULT 返回两个数组的矩阵乘积
MOD 返回两数相除的余数
MROUND 返回参数按指定基数取整后的数值
MULTINOMIAL 返回一组数的多项式
ODD 将数取整至最接近的奇数整数
PI 返回PI值
POWER 返回数的乘幂结果
PRODUCT 将所有以参数形式给出的数字相乘
QUOTIENT 返回商的整数部分
RADIANS 将度转换为弧度
RAND 返回0和1之间的随机数
RANDBETWEEN 返回指定数之间的随机数
ROMAN 将阿拉伯数字转换为文本形式的罗马数字
ROUND 将数取整至指定数
ROUNDDOWN 将数向下*近0值取整
ROUNDUP 将数向上远离0值取整
SERIESSUM 返回基于公式的幂级数的和
SIGN 返回数的正负号
SIN 返回给定角度的正弦
SINH 返回数的双曲正弦值
SQRT 返回正平方根
SQRTPI 返回某数与PI的乘积的平方根
SUBTOTAL 返回清单或数据库中的分类汇总
SUM 添加参数
SUMIF 按给定条件添加指定单元格
SUMPRODUCT 返回相对应的数组部分的乘积和
SUMSQ 返回参数的平方和
SUMX2MY2 返回两个数组中相对应值的平方差之和
30
SUMX2PY2 返回两个数组中相对应值的平方和之和
SUMXMY2 返回两个数组中相对应值差的平方之和
TAN 返回数的正切
TANH 返回数的双曲正切值
TRUNC 将数截尾为整数
十、统计函数
AVEDEV 返回一组数据与其均值的绝对偏差的平均值
AVERAGE 返回参数的平均值
AVERAGEA 返回参数的平均值,包括数字、文本和逻辑值
BETADIST 返回BETA分布累积函数的函数值
BETAINV 返回BETA分布累积函数的反函数值
BINOMDIST 返回单独项二项式分布概率
CHIDIST 返回CHI平方分布的单尾概率
CHIINV 返回CHI平方分布的反单尾概率
CHITEST 返回独立性检验值
CONFIDENCE 返回总体平均值的置信区间
CORREL 返回两个数据集之间的相关系数
COUNT 计算参数列表中的数字多少
COUNTA 计算参数列表中的值多少
COVAR 返回协方差,即成对偏移乘积的平均数
CRITBINOM 返回使累积二项式分布小于等于临界值的最小值 DEVSQ 返回偏差的平方和
EXPONDIST 返回指数分布
FDIST 返回F概率分布
FINV 返回反F概率分布
FISHER 返回FISHER变换
FISHERINV 返回反FISHER变换
FORECAST 根据给定的数据计算或预测未来值
FREQUENCY 返回作为矢量数组的频率分布
FTEST 返回 F 检验的结果
GAMMADIST 返回伽玛分布
GAMMAINV 返回反伽玛累积分布
GAMMALN 返回伽玛函数的自然对数,Γ(X)
GEOMEAN 返回几何平均数
GROWTH 根据给定的数据预测指数增长值
HARMEAN 返回数据集合的调和平均值
HYPGEOMDIST 返回超几何分布
INTERCEPT 返回回归线截距
31
KURT 返回数据集的峰值
LARGE 返回数据集中第K个最大值
LINEST 返回线条趋势的参数
LOGEST 返回指数趋势的参数
LOGINV 返回反对数正态分布
LOGNORMDIST 返回对数正态分布的累积函数
MAX 返回参数列表中的最大值
MAXA 返回参数列表中的最大值,包括数字、文本和逻辑值
MEDIAN 返回给定数字的中位数
MIN 返回参数列表的最小值
MINA 返回参数列表中的最小值,包括数字、文本和逻辑值
MODE 返回数据集中的出现最多的值
NEGBINOMDIST 返回负二项式分布
NORMDIST 返回普通累积分布
NORMINV 返回反普通累积分布
NORMSDIST 返回标准普通累积分布
NORMSINV 返回反标准普通累积分布
PEARSON 返回PEARSON乘积矩相关系数
PERCENTILE 返回区域中值的第K个百分比
PERCENTRANK 返回数据集中值的百分比排位
PERMUT 返回对象给定数的排列数
POISSON 返回泊松分布
PROB 返回区域中的值在两个限制之间的概率
QUARTILE 返回数据集的四分位数
RANK 返回某数在数字列表中的排位
RSQ 返回PEARSON乘积力矩相关系数的平方
SKEW 返回分布的偏斜度
SLOPE 返回线性回归直线的斜率
SMALL 返回数据集中的第K个最小值
STANDARDIZE 返回正态化数值
STDEV 估计样本的标准偏差
STDEVA 估计样本的标准偏差,包括数字、文本和逻辑值
STDEVP 计算整个样本总体的标准偏差
STDEVPA 计算整个样本总体的标准偏差,包括数字、文本和逻辑值 STEYX 返回通过线性回归法计算Y预测值时所产生的标准误差
TDIST 返回学生氏-T分布
TINV 返回反学生氏-T分布
TREND 返回沿线性趋势的值
32
TRIMMEAN 返回数据集的内部平均值
TTEST 返回与学生氏- T检验相关的概率
VAR 估计样本的方差
VARA 估计样本的方差,包括数字、文本和逻辑值
VARP 计算整个样本总体的方差
VARPA 计算整个样本总体的方差,包括数字、文本和逻辑值
WEIBULL 返回韦伯分布
ZTEST 返回Z检验的双尾P值
十一、文本函数
ASC 将字符串中的全角(双字节)英文字母或片假名更改为半角(单字节)字符。
CHAR 返回由编码号码所指定的字符
CLEAN 删除文本中的所有不可打印字符
CODE 返回文本串中第一个字符的数字编码
CONCATENATE 将多个文本项连接到一个文本项中
DOLLAR 使用当前格式将数字转换为文本
EXACT 检查两个文本值是否相同
FIND 在其他文本值中查找文本值(区分大小写)
FIXED 使用固定的十进制数将数字设置为文本格式
JIS 将字符串中的半角(单字节)英文字符或片假名更改为全角(双字节)字符。
LEFT 返回文本值中最左边的字符
LEN 返回文本串中字符的个数
LOWER 将文本转换为小写
MID 从文本串中的指定位置开始返回特定数目的字符
PHONETIC 从文本串中提取拼音(FURIGANA)字符
PROPER 将文本值中每个单词的首字母设置为大写
REPLACE 替换文本中的字符
REPT 按给定次数重复文本
RIGHT 返回文本值中最右边的字符
SEARCH 在其他文本值中查找文本值(不区分大小写)
SUBSTITUTE 在文本串中使用新文本替换旧文本
T 将参数转换为文本
TEXT 设置数字的格式并将其转换为文本
TRIM 删除文本中的空格
UPPER 将文本转换为大写
VALUE 将文本参数转换为数字
YEN 使用¥(YEN)货币符号将数字转换为文本。
33
本文发布于:2024-02-03 16:16:54,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170694821450873.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |