Excel 2007公式、函数与图表应用
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

第3章 文本、数据库函数与公式应用

文本函数与数据库函数在处理文本信息和管理学生成绩方面有着突出的优势。通过本章的学习,读者可以快速地掌握处理文本信息和管理学生成绩的方法。

3.1 文本函数

通过使用文本函数,用户可以在公式中处理文字串(例如,可以改变大小写或确定文字串的长度等),还可以将日期插入文字串或连接在文字串上。

知识点讲解

在ExceI 2007中,文本函数的类型有很多种,下面进行介绍。

1.ASC函数

用途:

对于双字节字符集(DBCS)语言,将全角(双字节)字符更改为半角(单字节)字符。

语法:

    ASC(text)

参数:

text为文本或对包含要更改文本的单元格的引用。如果文本中不包含任何全角字母,则文本不会更改。

实例:

“=ASC("EXCEL")”返回“EXCEL”,如图3-1所示。

★ 图3-1

2.BAHTTEXT函数

用途:

将数字转换为泰语文本并添加后缀“泰铢”。

在ExceI for Windows中,可以通过控制面板中的区域和语言选项设置,将泰铢格式更改为其他样式。

在ExceI for Macintosh中,可以使用数字控制面板将泰铢数字格式更改为其他样式。

语法:

    BAHTTEXT(number)

参数:

number为要转换成文本的数字、对包含数字的单元格的引用或结果为数字的公式。

实例:

在单元格中输入公式“=BAHTTEXT (1000)”,按下【Enter】键后,将在单元格中显示“หน㊣งพ㊣นบาทถ㊣วน”,如图3-2所示。

★ 图3-2

3.CHAR函数

用途:

返回对应于数字代码的字符,该函数可将其他类型的文件中的代码转换为字符(操作系统为Macintosh的Macintosh字符集和操作系统为Windows的ANSI字符集)。

语法:

    CHAR(number)

参数:

number是用于转换的字符代码,介于1~255之间(使用当前计算机字符集中的字符)。

实例:

公式“=CHAR(56)”返回8,“=CHAR(36)”返回“$”,如图3-3所示。

★ 图3-3

4.CLEAN函数

用途:

删除文本中不能打印的字符。对从其他应用程序中输入的字符串使用CLEAN函数,将删除其中含有的当前操作系统无法打印的字符。

语法:

    CLEAN(text)

参数:

text为要从中删除不能打印的字符的任何字符串。

实例:

由于CHAR(7)返回一个不能打印的字符,因此公式“=CLEAN (CHAR(7)&"text"&CHAR(7))”返回“text”,如图3-4所示。

★ 图3-4

5.CODE函数

用途:

返回文本字符串中第一个字符的数字代码(对应于计算机当前使用的字符集)。

语法:

    CODE(text)

参数:

text为需要得到第一个字符的数字代码的文本。

实例:

因为CHAR(65)返回“A”,所以公式“=CODE("AIphabet")”返回65,如图3-5所示。

★ 图3-5

6.CONCATENATE函数

用途:

将若干文本字符串合并到一个文本字符串中,其功能与“&”运算符相同。

语法:

    CONCATENATE(text1,text2,...)

参数:

text1,text2,... 为2~255个将要合并成单个文本的文本项,这些文本项可以是字符串、数字或对单个单元格的引用。

实例:

如果在A1和A2单元格中分别输入“102”和“千克”,则在C1单元格中输入公式“=CONCATENATE(A1, A2)”后,返回“102千克”,与公式“=A1&A2”等价,如图3-6所示。

★ 图3-6

7.DOLLAR或RMB函数

用途:

按照货币格式将小数四舍五入到指定的位数并转换成文本。

语法:

    DOLLAR(number,decimals)或
RMB(number,decimals)

参数:

number是数字、包含数字的单元格引用,或计算结果为数字的公式。

decimaIs是十进制的小数,如果decimaIs为负数,则参数number从小数点往左按相应位数取整。如果省略decimaIs参数,则默认其值为2。

实例:

输入“=RMB(1,586.567,2)”,返回“¥1,586.57”;输入“=RMB(99.888)”,返回“¥99.89”,如图3-7所示。

★ 图3-7

8.EXACT函数

用途:

测试两个字符串是否完全相同。如果它们完全相同,则返回TRUE;否则返回FALSE。EXACT函数能区分大小写,但忽略格式上的差异。

语法:

    EXACT(text1,text2)

参数:

text1是待比较的第一个字符串,text2是待比较的第二个字符串。

实例:

如果A1=物理、B1=化学、C1=物理,则输入“=EXACT(A1,B1)”后,返回FALSE;输入“=EXACT(B1,C1)”,返回FALSE;输入“=EXACT("word","word")”返回TRUE,如图3-8所示。

★ 图3-8

9.FIND函数

用途:

FIND用于查找其他字符串(within_text)内的字符串(find_text),并从within_text的首字符开始返回find_text的起始位置编号。此函数区分大小写但不允许使用通配符。

语法:

    FIND(fi nd_text,within_text,start_
num)

参数:

find_text是待查找的目标文本。

within_text是包含待查找文本的源文本。

start_num指定从哪里开始进行查找,即within_text中编号为1的字符。如果忽略start_num,则默认其为1。

实例:

如果A1=软件报,则输入公式“=FIND("软件", A1, 1)”,返回“1”,如图3-9所示。

★ 图3-9

10.FINDB函数

用途:

FINDB用于查找其他字符串(within_text)内的字符串(find_text),并根据每个字符使用的字节数从within_text的首字符开始返回find_text的起始位置编号。

FIND与FINDB的区别:前者以字符数为单位返回起始位置编号,而后者以字节数为单位返回起始位置编号。

语法:

    FINDB(find_text,within_
text,start_num)

参数:

find_text是待查找的目标文本。

within_text是包含待查找文本的源文本。

start_num指定从哪里开始进行查找,即within_text中编号为1的字符。如果忽略start_num,则默认其为1。

注意

此函数面向使用双字节字符集的语言,它能区分大小写,但不允许使用通配符。

实例:

如果A1=电脑爱好者,则公式“=FINDB(爱好者",A1,1)”返回5。因为每个字符均按字节进行计算,而一个汉字为两个字节,所以第3个汉字“爱”从第5个字节开始,如图3-10所示。

★ 图3-10

11.FIXED函数

用途:

按指定的小数位数四舍五入一个数,以小数格式对该数进行格式设置后,以文本形式返回结果。

语法:

    FIXED(number,decimals,no_commas)

参数:

number是要进行四舍五入并转换成文本的数。

decimaIs为一数值,用以指定小数点右边的小数位数。

no_commas为一逻辑值。如果是TRUE,则函数FIXED返回的文本不含逗号。如果no_commas是FALSE或省略,则返回的文本中包含逗号。

实例:

如果A1=2001.16845,则公式“=FIXED(A1, 2, TRUE)”返回2001.17;“=FIXED(6834.567, -1)”返回6830,如图3-11所示。

★ 图3-11

12.LEFT函数

用途:

根据所指定的字符数,返回文本字符串中的第一个或前几个字符。

语法:

    LEFT(text,num_chars)

参数:

text是包含要提取字符的字符串。

num_chars为指定函数要提取的字符数,它必须大于或等于0。

注意

(1)num_chars必须大于或等于0。

(2)如果num_chars大于文本长度,则LEFT返回所有文本。

(3)如果省略num_chars,则默认其为1。

实例:

如果A1=电脑爱好者,则公式“=LEFT(A1,2)”返回“电脑”,如图3-12所示。

★ 图3-12

13.LEFTB函数

用途:

根据所指定的字节数,返回文本字符串中的第一个或前几个字符。

语法:

    LEFTB(text,num_bytes)

参数:

text是包含要提取字符的字符串。

num_bytes为按字节数指定由LEFTB提取的字符数。

实例:

如果A1=电脑爱好者,则公式“=LEFTB(A1, 2) ”返回“电”,如图3-13所示。

★ 图3-13

14.LEN函数

用途:

LEN返回文本字符串中的字符数。

语法:

    LEN(text)

参数:

text为要查找其长度的文本。

注意

此函数始终将每个字符(不管是单字节还是双字节)按1计数。

实例:

如果A1=电脑爱好者,则公式“=LEN(A1)”返回5,如图3-14所示。

★ 图3-14

15.LENB函数

用途:

LENB返回文本字符串中所有字符的字节数。

语法:

    LENB(text)

参数:

text为要查找其长度的文本。

注意

此函数面向使用双字节字符集的语言。

实例:

如果A1=电脑爱好者,则公式“=LENB(A1)”返回10,如图3-15所示。

★ 图3-15

16.LOWER函数

用途:

将一个文本字符串中的所有大写字母转换为小写字母。

语法:

    LOWER(text)

语法:

text是包含待转换字母的字符串。

注意

LOWER函数不改变字符串中非字母的字符。LOWER与PROPER和UPPER函数非常相似。

实例:

如果A1=ExceI,则公式“=LOWER (A1)”返回“exceI”,如图3-16所示。

★ 图3-16

17.MID函数

用途:

MID返回文本字符串中从指定位置开始的特定数目的字符,该数目由用户指定。

用途:

    MID(text,start_num,num_chars)

参数:

text是包含要提取字符的字符串。

start_num是文本中要提取的第一个字符的位置,文本中第一个字符对应的start_num为1。

num_chars指定从文本中返回字符的个数。

注意

(1)如果start_num大于文本长度,则MID返回空文本。

(2)如果start_num小于文本长度,但start_num加上num_chars超过了文本的长度,则MID只返回至多到文本末尾的字符。

(3)如果start_num小于1,则MID返回错误值“#VALUE!”。

(4)如果num_chars是负数,则MID返回错误值“#VALUE!”。

(5)如果num_bytes是负数,则MIDB返回错误值“#VALUE!”。

实例:

如果A1=电子计算机,则公式“=MID(A1, 3, 2)”返回“计算”,如图3-17所示。

★ 图3-17

18.MIDB函数

用途:

MIDB返回文本字符串中从指定位置开始的特定数目(字节数)的字符,该数目由用户指定。

语法:

    MIDB(text,start_num,num_bytes)

参数:

text是包含要提取字符的字符串。

start_num是文本中要提取的第一个字符的位置,文本中第一个字符对应的start_num为1。

num_bytes指定从文本中按字节返回字符的个数。

实例:

如果A1=电子计算机,则公式“=MIDB(A1, 3, 2)”返回“子”,如图3-18所示。

★ 图3-18

19.PROPER函数

用途:

将文本字符串的首字母及任何非字母字符之后的首字母转换成大写字母,将其余的字母转换成小写字母。

语法:

    PROPER(text)

参数:

text是需要进行转换的字符串,可以是双引号中的字符串、返回文本值的公式或对含有文本的单元格的引用等。

实例:

如果A1=学习exceI,则公式“=PROPER(A1)”返回“学习ExceI”,如图3-19所示。

★ 图3-19

20.REPLACE函数

用途:

REPLACE使用其他文本字符串并根据所指定的字符数替换另一文本字符串中的部分文本。

语法:

    REPLACE(old_text,start_num,num_
chars,new_text)

参数:

oId_text是要替换其部分字符的文本。

start_num是要用new_text替换的oId_text中字符的位置。

num_chars是希望REPLACE函数使用new_text替换oId_text中字符的个数。

new_text是要用于替换oId_text中字符的文本。

实例:

如果A1=学习的革命、A2=ExceI,则公式“=REPLACE(A1, 3, 3, A2)”返回“学习ExceI”,如图3-20所示。

★ 图3-20

21.REPLACEB函数

用途:

REPLACEB的用途与REPLACE相同,它是根据所指定的字节数替换另一字符串中的部分文本的函数。

语法:

    REPLACEB(old_text,start_num,num_
bytes,new_text)

参数:

oId_text是要替换其部分字符的文本。

start_num是要用new_text替换的oId_text中字符的位置。

Num_bytes是希望REPLACEB函数使用new_text替换oId_text的字节数。

new_text是要用于替换oId_text中字符的文本。

注意

以上两函数均适用于双字节的汉字。

实例:

如果A1=学习的革命、A2=电脑,则公式“=REPLACEB(A1, 2, 3, A2)”返回“ExceI的革命”,如图3-21所示。

★ 图3-21

22.REPT函数

用途:

按照给定的次数重复显示文本,可以通过REPT函数对单元格进行重复填充。

语法:

    REPT(text,number_times)

参数:

text是需要重复显示的文本,number_times是重复显示的次数(正数)。

注意

REPT函数的结果不能多于32767个字符。

实例:

公式“=REPT("ExceI 2007", 2)”返回“ExceI 2007ExceI 2007”,如图3-22所示。

★ 图3-22

23.RIGHT函数

用途:

根据所指定的字符数返回文本字符串中最后一个或多个字符。

语法:

    RIGHT(text,num_chars)

参数:

text是包含要提取字符的文本串。

num_chars指定提取的字符数,它必须大于或等于0。如果num_chars大于文本长度,则RIGHT函数返回所有文本。如果省略num_chars参数,则默认其为1。

实例:

如果A1=ExceI学习的革命,则公式“=RIGHT(A1, 2)”返回“革命”,如图3-23所示。

★ 图3-23

24.RIGHTB函数

用途:

RIGHTB根据所指定的字节数返回文本字符串中最后一个或多个字符。

语法:

    RIGHTB(text,num_bytes)

参数:

text是包含要提取字符的字符串。

num_bytes指定提取字符的字节数。

实例:

如果在A1单元格中输入“ExceI学习的革命”,则公式“=RIGHTB(A1, 2)”返回“命”,如图3-24所示。

★ 图3-24

25.SEARCH函数

用途:

返回从start_num开始首次找到特定字符或字符串的位置编号。SEARCH函数以字符数为单位。

语法:

    SEARCH(find_text,within_
text,start_num)

参数:

find_text是要查找的文本,可以使用通配符,包括问号(?)和星号(*)。其中,问号代表任意的单个字符,星号代表任意的连续字符。如果要查找实际的问号或星号,应当在该字符前键入波浪线(~)。

within_text是要在其中查找find_text文本的文本。

start_num是在within_text中开始查找的字符的编号。如果省略start_num参数,则默认其为1。

实例:

如果A1=ExceI学习的革命,则公式“=SEARCH("的", A1)”返回8,如图3-25所示。

★ 图3-25

26.SEARCHB函数

用途:

返回从start_num开始首次找到特定字符或字符串的位置编号。SEARCHB函数以字节数为单位。

语法:

    SEARCHB(find_text,within_
text,start_num)

参数:

find_text是要查找的文本,可以使用通配符,包括问号(?)和星号(*)。其中,问号代表任意的单个字符,星号代表任意的连续字符。如果要查找实际的问号或星号,应当在该字符前键入波浪线(~)。

within_text是要在其中查找find_text文本的文本。

start_num是在within_text中开始查找的字符的编号。如果省略start_num参数,则默认其为1。

实例:

如果A1=ExceI学习的革命,则公式“=SEARCHB("的", A1)”返回10,如图3-26所示。

★ 图3-26

27.SUBSTITUTE函数

用途:

在文本字符串中用new_text替代oId_text。

如果需要在一个字符串中替换指定的文本,可以使用SUBSTITUTE函数;如果需要在某一字符串中替换指定位置处的任意文本,就应当使用REPLACE函数。

语法:

    SUBSTITUTE(text,old_text,new_
text,instance_num)

参数:

text是需要替换其中字符的文本,或是含有文本的单元格引用。

oId_text是需要替换的旧文本。

new_text是用于替换oId_text的文本。

instance_num为一数值,用来指定以new_text替换第几次出现的oId_text。如果指定了instance_num参数,则只有满足要求的oId_text文本会被替换,否则,new_text文本会替换text中出现的所有oId_text文本。

实例:

如果A1=学习的革命、A2=ExceI,则公式“=SUBSTITUTE(A1, "的革命", A2, 1)”返回“学习ExceI”,如图3-27所示。

★ 图3-27

28.T函数

用途:

将数值转换成文本。

语法:

    T(value)

参数:

vaIue是需要进行测试的数据。如果vaIue本身就是文本,或是对文本单元格的引用,T函数将返回vaIue参数;如果没有引用文本,则返回" "(空文本)。

实例:

如果A1中含有文本“电脑高手”,则公式“=T(A1)”返回“电脑高手”,如图3-28所示。

★ 图3-28

29.TEXT函数

用途:

将数值转换为按指定数字格式表示的文本。

语法:

    TEXT(value,format_text)

参数:

vaIue是数值、计算结果是数值的公式,或对数值单元格的引用。

format_text是所要选用的文本型数字格式,即“设置单元格格式”对话框“数字”选项卡下的“分类”列表框中显示的格式,它不能包含星号(*)。

注意

使用“设置单元格格式”对话框的“数字”选项卡设置单元格格式时,只会改变单元格的格式而不会影响其中的数值。使用函数TEXT,可以将数值转换为带格式的文本,其结果将不再作为数字参与计算。

实例:

如果A1=2986.638,则公式“=TEXT(A1,"#,##0.00")”返回“2,986.64”,如图3-29所示。

★ 图3-29

30.TRIM函数

用途:

除了单词之间的单个空格外,清除文本中所有的空格。如果从其他应用程序中获得了带有不规则空格的文本,可以使用TRIM函数清除这些空格。

语法:

    TRIM(text)

参数:

text是需要清除其中空格的文本。

实例:

如果A1=new book,则公式“=TRIM(A1)”返回“new book”,如图3-30所示。

★ 图3-30

31.UPPER函数

用途:

将文本转换成大写形式。

语法:

    UPPER(text)

参数:

text为需要转换成大写形式的文本,它可以是引用或文本字符串。

实例:

公式“=UPPER("appIe")”返回“APPLE”,如图3-31所示。

★ 图3-31

32.VALUE函数

用途:

将代表数字的文本字符串转换成数字。

语法:

    VALUE(text)

参数:

text为带引号的文本,或是对需要进行文本转换的单元格的引用。它可以是ExceI可以识别的任意常数、日期或时间格式。如果text不采用上述格式,则VALUE函数返回错误值“#VALUE!”。

注意

通常不需要在公式中使用VALUE函数,Excel会在需要时自动进行转换。VALUE函数主要用于与其他电子表格程序兼容。

实例:

公式“=VALUE("¥1,000")”返回1000;“=VALUE("16:48:00")-VALUE("12:00:00")”返回0.2,表示4小时48分钟,如图3-32所示。

★ 图3-32

33.WIDECHAR函数

用途:

将单字节字符转换为双字节字符。

语法:

    WIDECHAR(text)

参数:

text是需要转换为双字节字符的文本或包含文本的单元格引用。

注意

因为汉字本身是双字节字符,所以使用此函数转换汉字时得到的是汉字本身。

实例:

公式“=WIDECHAR("appIe")”返回“a p p I e”,=WIDECHAR("ExceI")返回“E x c e I”,如图3-33所示。

★ 图3-33

动手练

下面练习文本函数的使用。

1.计算商品受欢迎程度

分析商品的受欢迎程度可以说是市场营销人员必做的一件事情,营销人员可以使用专门的软件进行分析,使用ExceI也可以轻松地实现。下面练习使用“★”表示商品受欢迎程度,表格如图3-34所示。

★ 图3-34

1 选中K4单元格,单击“公式”选项卡,然后单击“函数库”工具组中的“插入函数”按钮,如图3-35所示。

★ 图3-35

2 单击打开的“插入函数”对话框中的“或选择类别”下拉按钮,选择“文本”选项,然后在“选择函数”列表框中选择“REPT”函数选项,如图3-36所示。

★ 图3-36

3 单击“确定”按钮,打开“函数参数”对话框,在“Text”文本框中输入“B$1”,然后在“Number_times”文本框中输入“J4/80”,如图3-37所示。

★ 图3-37

4 单击“确定”按钮,即可在K4单元格中用“★”表示出该商品的受欢迎度,然后使用填充柄填充K4下面的单元格即可,如图3-38所示。

★ 图3-38

2.更新联系方式

在使用ExceI管理员工信息时,经常会遇到员工更换联系方式的情况,如果是更换联系方式的员工人数较多,而且号码有一定的规律,就可以使用RepIace函数快速更新。这里练习将员工电话号码的前三位“062”替换为“0628 ”。本练习的“员工基本情况表”如图3-39所示。

★ 图3-39

1 选中F3单元格,然后在编辑栏中输入公式“=REPLACE(E3,1,3,"0628 ")”,按下【Enter】键,即可在F3单元格中看到更新后的联系方式。

2 使用填充柄填充F4单元格即可,如图3-40所示。

★ 图3-40

3.转换货款的货币格式

在管理商品的进货价格和销售价格时,经常需要将货款的货币格式转换成标准的货币格式,即精确到分(保留两位小数),或者根据需要精确到需要的货币单位。下面练习将商品的进口价精确到0.1美元,销售价精确到分,这里需要用到DOLLAR和REB函数转换货款的货币格式,表格如图3-41所示。

★ 图3-41

1 在E3单元格中输入公式“=DOLLAR (D3,1)”,然后填充E4单元格。

2 在G3单元格中输入公式“=RMB(F3,2)”,然后填充G4单元格,如图3-42所示。

★ 图3-42

4.提取区号和电话号码

在管理职员的联系方式时,有时会将职员的区号和电话号码一起输入到一个单元格中,这样在需要分别提取职员的区号和电话号码时就会有一定的难度。不过如果区号和电话号码位数都是相同的(如区号都是4位,电话号码都是7位),使用ExceI中的函数还是很容易解决的,本练习的表格如图3-43所示。

★ 图3-43

1 提取区号:提取D3单元格中左边的4位数字,在E3单元格中输入公式“=LEFT(D3,4)”,然后填充E4单元格。

2 提取电话号码:提取D3单元格中右边的7位数字,在F3单元格中输入公式“=RIGHT(D3,7)”,然后填充F4单元格,如图3-44所示。

★ 图3-44

5.返回个人称呼

在知道了联系人的姓名、性别和所在城市后,能否使用公式得到联系人的称呼呢?答案是肯定的。练习表格如图3-45所示。

★ 图3-45

1 在E3单元格中输入公式“=CONCATENATE (D3,"市",LEFT(B3,1),IF(C3="女","女士","先生"))”,按下【Enter】键,即可在E3单元格中得到称呼“烟台市李女士”。

2 填充E4单元格,得到称呼“日照市韩先生”,如图3-46所示。

★ 图3-46

6.提取用户资料的相关信息

在管理用户资料时,知道了用户的姓名、身份证号码、家庭住址和代表性别的顺序码后,能不能提取出用户的出生日期、性别和称呼呢?答案也是肯定的。本练习中的表格如图3-47所示。

★ 图3-47

1 提取出生日期:在E3单元格中输入公式“=IF(LEN(C3)=15,MID(C3,7,6),MID(C3,9,6))”,按下【Enter】键后,即可得到用户的出生日期,然后向下填充此列中需要提取出生日期的单元格,如图3-48所示。

★ 图3-48

提示

此公式的意思是从身份证号码中提取出生日期时,如果是15位的身份证号,出生日期为从第7位数字开始的6位数字;如果是18位的身份证号,出生日期为从第9位数字开始的6位数字。

2 返回性别的顺序码:在H3单元格中输入公式“=VALUE(IF(LEN(C3)=15,RIGHT(C3, 1),MID(C3,17,1)))”,按下【Enter】键后,在H3单元格中即可提出用户的性别顺序码,然后向下填充此列中需要提取顺序码的单元格,如图3-49所示。

★ 图3-49

3 判断性别:在F3单元格中输入公式“=IF(OR(H3=1,H3=3,H3=7,H3=9),"男","女")”,按下【Enter】键后,即可在F3单元格中得到用户的性别,然后向下填充此列中需要判断性别的单元格,如图3-50所示。

★ 图3-50

提示

在15位的身份证号码中,最后一位为顺序码,奇数为男性,偶数为女性,由于升级为18位身份证号码后,最末位处添加了一位校验码,因此判断性别的顺序码为倒数第2位。

4 确定称呼:在G3单元格中输入公式“=CONCATENATE(D3,"市", LEFT(B3,1),IF(F3="女","女士","先生"))”,按下【Enter】键后,即可在G3单元格中得到用户的称呼,然后向下填充此列中需要得到用户称呼的单元格,如图3-51所示。

★ 图3-51

3.2 数据库函数

数据库函数是在需要分析数据清单中的数值是否符合特定条件时,经常使用的工作表函数。

例如,在一个包含销售信息的数据清单中,可以计算出所有销售数值大于1000,又小于2500的行或记录的总数。

知识点讲解

Microsoft ExceI 2007共有12个工作表函数可用于对存储在数据清单或数据库中的数据进行分析,这些函数的统一名称为Dfunctions,也称为D函数,每个函数均有三个相同的参数:database,fieId和criteria。这些参数指向数据库函数所使用的工作表区域。其中,参数database为工作表中包含数据清单的区域;参数fieId为需要汇总的列的标志;参数criteria为工作表中包含指定条件的区域。

下面结合如图3-52所示的某果园果树的高度、使用年数、产量和利润的统计表,详细介绍各数据库函数的功能和使用方法。

★ 图3-52

1.DAVERAGE函数

用途:

返回数据库或数据清单中满足指定条件的列中数值的平均值。

语法:

    DAVERAGE(database,fi eld,criteria)

参数:

database为构成列表或数据库的单元格区域。

fieId指定函数所使用的数据列。

criteria为一组包含给定条件的单元格区域。

实例:

公式“=DAVERAGE(A4:E10,"产量", A1:B2)” 可以计算出高度在10英尺以上的苹果树的平均产量为12,如图3-53所示。

★ 图3-53

2.DCOUNT函数

用途:

返回数据库或数据清单的指定字段中满足给定条件并且包含数字的单元格数目。

语法:

    DCOUNT(database,field, criteria)

参数与DAVERAGE函数相同。

实例:

使用公式“=DCOUNT(A4:E10,"使用年数",A1:F2)”,可以查找高度在10~16英尺之间的苹果树的记录,并且计算这些记录中“使用年数”字段包含数字的单元格数目,本例中返回值为1,如图3-54所示。

★ 图3-54

3.DCOUNTA函数

用途:

返回数据库或数据清单指定字段中满足给定条件的非空单元格数目。

语法:

    DCOUNTA(database,fi eld,criteria)

参数同DAVERAGE函数。

实例:

使用公式“=DCOUNTA(A4:E10,"利润",A1:F2)”,可以查找高度为10~16英尺之间的苹果树记录,并计算这些记录中“利润”字段非空的单元格数目,本例中返回值为1,如图3-55所示。

★ 图3-55

4.DGET函数

用途:

从数据清单或数据库中提取符合指定条件的单个值。

语法:

    DGET(database,fi eld,criteria)

参数同DAVERAGE函数。

实例:

公式“=DGET(A4:E10,"产量", A1:A3)”返回错误值“#NUM!”,因为有多个记录符合给定的条件,如图3-56所示。

★ 图3-56

5.DMAX函数

用途:

返回数据清单或数据库的指定列中,满足给定条件单元格中的最大数值。

语法:

    DMAX(database,fi eld,criteria)

参数同DAVERAGE函数。

实例:

公式“=DMAX(A4:E10,"利润", A1:A3)”可以查找苹果树和梨树的最大利润,本例中返回值为105,如图3-57所示。

★ 图3-57

6.DMIN函数

用途:

返回数据清单或数据库的指定列中满足给定条件的单元格中的最小数值。

语法:

    DMIN(database,fi eld,criteria)

参数同DAVERAGE函数。

实例:

公式“=DMIN(A4:E10,"利润", A1:B2)”可以查找高度在10英尺以上的苹果树的最小利润,本例中返回值为75,如图3-58所示。

★ 图3-58

7.DPRODUCT函数

用途:

返回数据清单或数据库的指定列中,满足给定条件单元格中的数值乘积。

语法:

    DPRODUCT(database,fi eld,criteria)

参数同DAVERAGE函数。

实例:

公式“=DPRODUCT(A4:E10,"产量", A1:B2)”可以计算出高度大于10英尺的苹果树产量的乘积,本例中返回值为140,如图3-59所示。

★ 图3-59

8.DSTDEV函数

用途:

将列表或数据库的列中满足指定条件的数值作为一个样本估算出样本总体标准偏差。

语法:

    DSTDEV(database,field, criteria)

参数同DAVERAGE函数。

实例:

如果数据库中的数据只是整个果园的一个样本,则公式“=DSTDEV(A4:E10,"产量",A1:A3)”的返回值是苹果树和梨树产量的估算标准偏差,本例中返回值为2.966479395,如图3-60所示。

★ 图3-60

9.DSTDEVP函数

用途:

将数据清单或数据库的指定列中,满足给定条件单元格中的数值作为样本总体,计算总体的标准偏差。

语法:

    DSTDEVP(database,fi eld,criteria)

参数同DAVERAGE函数。

实例:

如果数据库中的数据为整个果园的样本总体,则公式“=DSTDEVP(A4:E10,"产量",A1:A3)”的返回值是苹果树和梨树产量的真实标准偏差,本例中返回值为2.653299832,如图3-61所示。

★ 图3-61

10.DSUM函数

用途:

返回数据清单或数据库的指定列中,满足给定条件单元格中的数值之和。

语法:

    DSUM(database,fi eld,criteria)

参数同DAVERAGE函数。

实例:

公式“=DSUM(A4:E10,"利润", A1:F2)”可以计算出高度在10~16英尺之间的苹果树的总利润,本例中返回值为75,如图3-62所示。

★ 图3-62

11.DVAR函数

用途:

将数据清单或数据库的指定列中满足给定条件单元格中的数值作为一个样本估算样本总体的方差。

语法:

    DVAR(database,fi eld,criteria)

参数同DAVERAGE函数。

实例:

如果数据库中的数据只是整个果园的一个样本,则公式“=DVAR(A4:E10,"产量", A1:A3)”返回值是苹果树和梨树产量的估算方差,本例中返回值为8.8,如图3-63所示。

★ 图3-63

12.DVARP函数

用途:

将数据清单或数据库的指定列中满足给定条件单元格中的数值作为样本总体,计算总体的方差。

语法:

    DVARP(database,field, criteria)

参数同DAVERAGE函数。

实例:

如果数据库中的数据为整个果园的样本总体,则公式“=DVARP(A4:E10,"产量", A1:A3)”返回值是苹果树和梨树产量的真实方差,本例中返回值为7.04,如图3-64所示。

★ 图3-64

动手练

下面练习数据库函数的使用。

1.管理销售数据

本练习表格如图3-65所示。下面计算面霜的平均销量、最高价格、最低价格和销售总金额。

★ 图3-65

1 计算面霜的平均销售量:在D11单元格中输入公式“=DAVERAGE(A2:E8,5,C10:C11)”,按下【Enter】键即可求得相应的结果,如图3-66所示(此公式中的“5”是指数据库列表中的第5列,即E列“销售数量”)。

★ 图3-66

2 求面霜的最高价格:在E11单元格中输入公式“=DMAX(A2:E8,4,C10:C11)”,按下【Enter】键,即可求得相应的结果,如图3-67所示。

★ 图3-67

3 求面霜的最低价格:在F11单元格中输入公式“=DMIN(A2:E8,4,C10:C11)”,按下【Enter】键即可求得相应的结果,如图3-68所示。

★ 图3-68

4 求面霜的销售总金额:在G11单元格中输入公式“=DSUM(A2:F8,6,C10:C11)”,按下【Enter】键即可求得相应的结果,如图3-69所示。

★ 图3-69

2.管理学生成绩

学生成绩管理是每个班主任期末需要做的工作,本练习表格如图3-70所示。表格中C15:G16单元格区域和C18:G19单元格区域为计算条件,要求在K9单元格中计算出平均分以及各科成绩都在60分以上的人数,在K14单元格中计算出平均分以及各科成绩都在80分以上的人数。

★ 图3-70

1 在K9单元格中输入公式“=DCOUNT (B2:H12,7,C15:G16)”,按下【Enter】键后,即可计算出平均分以及各科成绩都在60分以上的人数为9人,如图3-71所示。

★ 图3-71

2 在K14单元格中输入公式“=DCOUNT (A2:G12,7,C18:G19)”,按下【Enter】键后,即可计算出平均分以及各科成绩都在80分以上的人数为1人,如图3-72所示。

★ 图3-72

疑难解答

公式中的单元格引用通常有三种:相对引用、绝对引用和混合引用,若要更改引用方式,还需要手动修改,这样很麻烦,有没有快捷键呢?

答案是肯定的,通过【F4】键,就可以快速地在三种引用方式之间切换。例如,C1单元格包含公式“=SUM(A1:B1)”,如果需要改变其中的单元格引用方式,可以选中C1单元格,然后选中工作表编辑栏中的引用“A1:B1”,按【F4】键,即可将相对引用更改为绝对引用或混合引用,如图3-73所示。

★ 图3-73

???其中,按一次【F4】健,“A2:B2”会变为“$A$2:$B$2”;再按一次【F4】健,“$A$2:$B$2”会变为“A$2:B$2”。使用【F4】键,即可在相对引用、绝对引用和混合引用之间快速切换。

在Excel中,如何把B列的内容追加到A列?

可以使用CONCATENATE函数。使用公式“=CONCATENATE(A1,B1)”,然后复制公式即可。如果要合并多列,则加上相应的列参数“=CONCATENATE(G1,H1,I1)”。

要在两个合并的文本中间加插一个固定符号,使用CONCATENATE函数怎么写?例如,在单元格D5中要得到A5+B5的内容,则使用公式“=CONCATENATE(A5,B5)”,但要在两内容之间加固定文本“@”,可以做到吗?

可以使用这样的公式“=CONCATENATE(A5,"@",B5)”或者“=A5&"@"&B5”,用“&”连接。还可以使用公式“=CONCATENATE(A5&"@"&B5)”。