>第16章、表达式函数详解16.1 常量表达式中可包含数字型、字符型或日期型的常量。数字型常量的表达就是数字本身;字符型常量表示为用单引号括起来的字符串,如’abc’,’北京’等;日期型常量表示为用单引号括起来的日期,写成月/日/年的格式。如’10/01/2005’表示“2005年10月1日”这一日期。 另外注意字符型常量和日期型常量两端的单引号一定要是英文的单引号,而不能是中文的单引号‘或’。 在Excel服务器的示例数据库中,有一个名为《常量》的模版,其中的表间公式示例了常量的用法。 16.2 逻辑表达式表间公式或回写公式的筛选条件是一个逻辑表达式。所谓逻辑表达式就是一个判断,它的结果只有两种可能,或者为“真”,或者为“假”。 最简单的逻辑表达式就是一个关系判断(又称关系表达式),它用“=”、“<>”、“>”、“>=”、“<”、“<=”、“形如”、“属于”、“不属于”等关系运算符连接左右两端,如: 客户表.登记日期>=本报表.Sheet1:日期 间隔时间(dd,客户表.登记日期,系统变量.当前日期)>=30 订单_主表.合计金额>20000 若干个关系表达式,可通过“并且”、“或者”、“不满足”三个逻辑运算符连接起来,表达更复杂的逻辑关系,如: (客户表.登记日期>=本报表.Sheet1:日期 并且 客户表.大区=’京津’) (本报表.Sheet1:查询品名=’’ 或者 (订单_明细.产品名称=本报表.Sheet1:查询品名 并且 订单_主表.已发货=’是’)) 关系运算符=:左端等于右端,要求两端数据类型相同 <>:左端不等于右端,要求两端数据类型相同 >=:左端大于右端,要求两端数据类型相同 >=:左端大于或等于右端,要求两端数据类型相同 <:左端小于右端,要求两端数据类型相同 <=:左端小于或等于右端,要求两端数据类型相同 形如:要求左右两端都为字符型的数据,且左端字符串中包含右端字符串,如 ’中华人民共和国’ 形如 ‘中国’ 成立 ‘中国’ 形如 ‘中华人民共和国’ 不成立 属于、不属于:要求右端必须是集合函数,详见本章第6节 逻辑运算符并且:当A和B都成立时,“A并且B”成立。 或者:当A和B中有一个成立时,“A或者B”成立。 不满足:当A成立时,“不满足A”不成立。当A不成立时,“不满足A”成立。例如:“不满足(1>2)”成立。 16.3 统计函数统计函数不能用于回写公式,也不能用于表间公式的筛选条件,而只能用于表间公式的填充方式。 Excel服务器提供了7个统计函数:合计、平均、计数、最大值、最小值、最早、最晚。它们都只有一个参数----某数据表中的字段名,其作用是对该字段的若干取值进行统计。 合计:要求参数字段为数字型,返回该字段取值的合计值。 平均:要求参数字段为数字型,返回该字段取值的平均值。 计数:不限参数字段的类型,返回该字段取值的个数。 最大值:不限参数字段的类型,返回该字段取值中的最大者。对字符型字段,若为英文,大小按字母顺序排序;若为中文,大小按汉语拼音的字母顺序排序。 最小值:不限参数字段的类型,返回该字段取值中的最小者。对字符型字段,若为英文,大小按字母顺序排序;若为中文,大小按汉语拼音的字母顺序排序。 最早:要求参数字段为日期型,返回该字段取值中的最早日期。(同最小值) 最晚:要求参数字段为日期型,返回该字段取值中的最晚日期。(同最大值) 示例数据库中提供了一个模版《统计函数》,其中的表间公式示例了各种统计函数的用法。 16.4 日期函数Excel服务器提供了比较丰富的日期函数,比较常用的有: 年份值、月份值、日期值、星期求日期型数据的年份、月份、日期和星期,返回值为整数。如年份值(‘12/23/2005’)=2005,月份值(‘12/23/2005’)=12 此年、此月、此季返回某个时间区间,要求与关系运算符“介于”一起使用。例如:’01/15/2005’ 介于 此月(2005,1),表示日期“2005年1月15日”介于2005年1月份之内。 日期加减在某基准日期的基础上,增加或减少几个时间单位(天/周/月/季/年/小时)。得到一个新的日期。例如:日期加减(dd,-2,’01/10/2005’),返回的是“2005年1月10日”的前2天的日期,即“2005年1月8日”。 年初、年末、月初、月末返回指定时间段的起始(或结尾)那一天的日期。例如:月末(2005,7),返回2005年7月份月末那一天的日期,即“2005年7月31日”。 间隔时间返回两个指定日期之间的间隔时间单位,结果为整数。例如: 间隔时间(dd,’01/01/2005’,’02/01/2005’)返回2005年1月1日至2005年2月1日之间的间隔天数,结果为31。 间隔时间(mm,’01/01/2005’,’02/01/2005’)返回2005年1月1日至2005年2月1日之间间隔的月数,结果为1。 在示例数据库中提供了一个模版《日期函数》,其中的表间公式例示了日期函数的用法。 16.5 字符串函数取子串(<字符串>,<起始位置>,<截取长度>):此函数截取指定字符串的一部分。比如:取子串('abcdefg',2,3),返回子串"bcd"。 字符串长度(<字符串>):此函数返回指定字符串的长度。 转大写(<字符串>):此函数将字符串中的小写字母转换成大写字母。 在示例数据库中提供了一个模版《字符串函数》,其中的表间公式例示了字符串函数的用法。 16.6 集合函数集合函数只有一个:此集合(<值1>,<值2>,…,<值n>),此函数必须和关系运算符“属于”或“不属于”一起使用。 集合函数的具体使用方法,请参见示例数据库中的模版《集合函数》 16.7 系统变量Excel服务器提供的系统变量有:当前用户姓名、当前用户所在部门、当前用户部门编号、当前日期、当前日期时间。 16.8 输入变量我们在定义表间公式的筛选条件时,经常会把数据表中的字段内容和本报表上的字段内容比较,比如: 客户表.登记日期>=本报表.Sheet1:起始日期。 在这里,“本报表.Sheet1:起始日期”,就是一个变量,它的取值为应用公式的那一时刻“起始日期”所对应的单元格的值。 假如我们希望筛选条件中的变量取值不是来自Excel工作表上的单元格内容,而是在应用公式的那一时刻弹出输入窗口,由用户手工输入,就需要用到输入变量。这是,上面的条件可以改写为: 客户表.登记日期>=输入.起始日期[D] 其中的[D]表示用户输入的起始日期一定要是日期型。 在示例数据库中提供了一个模版《输入变量》,其中定义了一个打开后自动运行的表间公式: 提取<客户表>中满足下列条件的数据: <数据筛选: 客户表.登记日期 >= 输入.起始日期[D]> 按以下方式填入<输入变量_明细>: 客户表.客户编号 --->(填入值) 客户编号 客户表.客户名称 --->(填入值) 客户名称 客户表.登记日期 --->(填入值) 登记日期 填报此模版,公式自动运行,弹出输入对话框,如下图所示,当用户输入起始日期后按【确定】,自动查询出在指定日期之后登记的客户信息。 图 16?1 |
|
来自: excel379 > 《excel服务器文章》