首页 理论教育 信息查找与引用类函数在Word、Excel、PPT的高级应用

信息查找与引用类函数在Word、Excel、PPT的高级应用

时间:2023-10-27 理论教育 版权反馈
【摘要】:对于第一种情况,就需要对数据信息进行各种关联,此时就会用到信息查找与引用类函数。图15-23HLOOKUP( )函数示例4.INDEX( )、MATCH( )函数INDEX( )函数用途:用于返回表格或区域中指定行、列位置的值。一般而言,这两种函数的结合使用可以实现VLOOKUP( )函数的所有功能,并且具有更好的灵活性。

信息查找与引用类函数在Word、Excel、PPT的高级应用

Excel的信息查找功能非常直观,而这里所说的“信息查找”是指对数据表之间数据关联的查询与引用。一般而言,为了保证数据的规范性和一致性,一个系统里的数据应该满足第三范式。即既要满足第一范式:一张表中只能保存一种数据,不能把多种数据保存在同一张数据库表中;还要满足第二范式:数据表中的每一列数据都和主键直接相关,而非间接相关。

Excel中的数据表综合性较强。因此,通常会出现这两种情况:(1)用Excel在较为宽泛的第三范式的基础上建立各个数据表之间的关系,数据表之间需要通过信息查找和引用函数进行关联。(2)在其他数据库系统里建立了严谨的数据关系,并且有各种数据信息的管理应用,出于更进一步的应用需求,需要在Excel中导出数据,再利用Power Pivot建立数据关系以进行进一步的分析。对于第一种情况,就需要对数据信息进行各种关联,此时就会用到信息查找与引用类函数。

1.LOOKUP( )函数

用途:用于根据某个关键字从单行或单列区域或者从一个数组中查询数据,然后返回所查找的特定值。LOOKUP( )函数所查询的区域或数组,必须按升序排列数据。

用法:LOOKUP(lookup_value, lookup_vector, [result_vector])

说明:

图15-21 LOOKUP( )函数示例

“lookup_value”可以是数字、文本、逻辑值、名称或对值的引用,文本不分大小写

“lookup_vector”为被查找区域(数组),必须是单行或单列区域,且按升序排列。

“result_vector”为返回值区域,也必须是单行或单列区域,且大小与“lookup_vector”相同。

如果找不到“lookup_value”,则函数将与“lookup_vector”中小于“lookup_value”的最大值进行匹配。

如果“lookup_value”小于“lookup_vector”中的最小值,则LOOKUP( )函数会返回错误值“#N/A”。

在数组中的查找与上例类似,如:

=LOOKUP("C", {"a", "b", "c", "d";1, 2, 3, 4}) // 返回3

=LOOKUP("bump", {"a", 1;"b", 2;"c", 3}) // 返回2

2.VLOOKUP( )函数

用途:用于通过对关键字的查询检索,将某一区域中的数据返回到特定单元格,以实现数据动态关联,保证数据的规范性。这里的“V”是Vertical(纵向)之意,即被检索的数据是纵向(按列)存放的。

用法:VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

说明:

图15-22 VLOOKUP( )函数示例

参数“lookup_value”为在表格或区域的第一列中需要被查找的值,被查找的值可以是文本、数字或逻辑值,文本不区分大小写。

参数“table_array”为包含数据的单元格区域(也可直接使用已命名区域的名称)。

参数“col_index_num”指从数据区域中返回数据的列号。这个列号是指数据区域中的列数,与数据的列标无关。例如,图15-22中参数“col_index_num”为2,表示返回H$3:I$7区域中的第二列数据,即H$3:I$7区域中“提成率”列的数据。

参数“col_index_num”必须大于等于1。因此,VLOOKUP( )函数只能返回右侧信息。

参数“range_lookup”为可选参数,是逻辑值,用于指定VLOOKUP( )函数是按照精确匹配值还是近似匹配值进行查找。

如果“range_lookup”为“TRUE”或被省略,则必须按升序排列“table_array”第一列中的值;否则,VLOOKUP( )函数可能无法返回正确的值。此时,函数返回精确匹配值或近似匹配值,如果找不到精确匹配值,则返回小于“lookup_value”的最大值。

如果“range_lookup”为“FALSE”,则不需要对“table_array”第一列中的值进行排序。此时,VLOOKUP( )函数将只会查找精确匹配值。如果“table_array”的第一列中有两个或更多的值与“lookup_value”匹配,则使用第一个被找到的值。如果找不到精确匹配值,则返回错误值“#N/A”。

VLOOKUP( )函数的应用广泛,有关VLOOKUP( )函数的应用详情,请阅读15.3.4小节

3.HLOOKUP( )函数

用途:用于通过对关键字的查询检索,将某一区域中的数据返回到特定单元格,从而实现数据动态关联,保证数据的规范性。这里的“H”是Horizontal(横向)之意,代表“行”。

用法:HLOOKUP(lookup_value, table_array, row_index_num, [range_lookup])

说明:

Excel存放数据具有灵活性。有时数据表可能横向(按行)存放。因此,需要可以进行横向检索的函数。

HLOOKUP( )函数的参数与VLOOKUP( )函数的参数总体类似,不同之处在于第三个参数。VLOOKUP( )函数中的“col_index_num”为区域中的列号,而HLOOKUP( )函数中的“row_index_num”为区域中的行号。例如,图15-23中的参数“col_index_num”为2,表示返回区域$I$2:$L$3中的第二行数据,即区域$I$2:$L$3中“折扣率”行的数据。

图15-23 HLOOKUP( )函数示例

4.INDEX( )、MATCH( )函数

(1)INDEX( )函数

用途:用于返回表格或区域中指定行、列位置的值。

INDEX( )函数和MATCH( )函数结合使用,可以匹配并返回表格或区域中的值或值的引用。一般而言,这两种函数的结合使用可以实现VLOOKUP( )函数的所有功能,并且具有更好的灵活性。利用INDEX( )函数提取数据的示例如图15-24所示。

用法:INDEX(array, row_num, [column_num])

说明:

图15-24 INDEX( )函数示例

第一个参数“array”既可以是表格区域,也可以是某一数组。

图15-25 MATCH( )函数操作示例

单独使用INDEX( )函数时,必须知道所需数据在区域(或数组)中的行、列位置,这也导致其操作的灵活性很差。因此,INDEX( )函数多与MATCH( )函数结合起来使用。

(2)MATCH( )函数

用途:用于在表格或区域中匹配值,并返回匹配值在表格或区域中的位置。

用法:MATCH(lookup_value, lookup_array, [match_type])

说明:

图15-26 INDEX( )函数与MATCH( )函数的近似匹配

参数“lookup_value”和“lookup_array”分别表示匹配值和查找匹配值的区域。

参数“match_type”有三个选项(指数字1、0或-1):

● 1(缺省值),近似匹配,查找小于或等于查找值的最大值;同时,“lookup_array”要按升序排列。

● 0,精确匹配,“lookup_array”无须排序;

● -1,近似匹配,查找大于或等于查找值的最小值;同时,“lookup_array”要按降序排列。

MATCH( )函数返回匹配值的位置,而不是值本身。如果需要获取值本身,则需要和其他函数一起使用,如INDEX( )函数、VLOOKUP( )函数。

匹配文本值时,MATCH( )函数不区分大小写字母

5.CHOOSE( )函数

用途:用于根据第一个参数“索引号”从最多254个数值中选择一个。

用法:CHOOSE(index_num, value1, [value2], ...)(www.xing528.com)

说明:

“index_num”必须是介于1到254之间的数字,或是包含1到254之间的数字的公式或单元格引用。如果“index_num”为小数,则在使用前将被截去小数取整。

图15-27 CHOOSE( )函数示例

在参数“value1”“value2”……中,“value1”是必需的,后续值是可选的。在1到254个数值参数中,CHOOSE( )函数将根据“index_num”从中选择一个数值或一项要执行的操作。参数可以是数字、单元格引用、定义的名称、公式、函数或文本。图15-27中的C3单元格代码如下,并向下填充。

=CHOOSE(B3,"极差","差","及格","良好","优秀")

CHOOSE( )函数的功能看似普通,但其与其他函数合用时将会产生出色的使用效果:

● 与IF( )函数合用,简化多条件选择性返回值的表达。

如图15-28,利用排名作为索引号,给出选择性的返回值。E3单元格的代码如下,向下填充。

=IF(D3<=3,CHOOSE(D3,"一等奖","二等奖","三等奖"),"")

此例当然可以使用IF( )函数嵌套来实现,但使用IF( )函数嵌套时,公式较长、括号较多,书写起来也容易出错,不如IF( )函数配合CHOOSE( )函数的使用效果简洁。

可以看到,利用CHOOSE( )函数,必须首先获得一个从1开始的索引值。

● 与MATCH( )函数配合使用。

如图15-29,先用MATCH( )函数定位当前值在等级分值中所处的位置,然后用CHOOSE( )函数返回对应的等级名称。D3单元格的代码如下,向下填充。

图15-28 CHOOSE( )函数与IF( )函数合用

=CHOOSE(MATCH(C3,$F$3:$F$7),$G$3,$G$4,$G$5,$G$6,$G$7)

图15-29 CHOOSE( )函数与MATCH( )函数合用

此例当然也可以利用IF( )函数嵌套或者IFS( )函数来实现,但公式都比较长,用IF( )函数时括号还较多。

另外,可以看到CHOOSE( )函数参数中的“value1”“value2”……必须是实际值的枚举,不能将其合并起来并用一个区域表示。

● 与SUM( )函数配合使用,计算多列数值的求和。

如图15-30,可以看到,CHOOSE( )函数可以使用数组型索引。此时,函数会根据数组值分别获取相应的值。计算过程为:利用CHOOSE( )函数获得区域1(即C4:C9),再获得区域2(即E4:E9),然后对区域1和区域2求和。

● 与VLOOKUP( )函数配合使用,解决VLOOKUP( )函数不能返回左侧值的问题。图15-31中J4单元格的公式代码为:

图15-30 CHOOSE( )函数与SUM( )函数合用

=VLOOKUP(I4,CHOOSE({1,2},$C$4:$C$9,$B$4:$B$9),2,0)

由于VLOOKUP( )函数只能返回右侧信息(“col_index_num”必须大于等于1),所以当出现如图15-31所示的特殊情况,即基于某些业务细节反查基础信息时,可以使用CHOOSE( )函数将数组的次序颠倒过来。

图15-31中示例的计算过程为:用CHOOSE( )函数分别将C4:C9、B4:B9两区域取出,并在后台组成一个新数组。由于操作顺序为先取C区域、后取B区域,所以这时已经将数组的列序顺了过来。然后,VLOOKUP( )函数将根据I4单元格的值,在新数组中进行检索,返回第二列的值。

图15-31 CHOOSE( )函数与VLOOKUP( )函数合用

6.OFFSET( )函数

用途:用于以指定的引用(如单元格或相连单元格区域的引用)为参照系,通过给定偏移量得到新的引用。

用法:OFFSET(reference, rows, cols, [height], [width])

说明:

图15-32 OFFSET( )函数示例

OFFSET( )函数对各种“动态区域”问题都有用,这些动态包括计算的起点和范围。

7.ROW( )、COLUMN( )函数

用途:用于返回当前单元格或指定单元格的行标或列标。

用法:ROW([reference]); COLUNM([reference])

说明:

图15-33 ROW( )、COLUMN( )函数示例

当参数为一个区域时,将返回起始单元格的行标和列标。

相关的函数还有ROWS( )函数和COLUMNS( )函数,将返回一个区域的行数和列数。

8.ADDRESS( )函数

图15-34 ADDRESS( )函数示例

用途:用于根据行标和列标,返回单元格地址,且能够指定地址格式是绝对引用、相对引用或者混合引用。

用法:ADDRESS(row_num, column_num, [abs_num], [a1], [sheet_text])

说明:

参数“abs_num”即格式参数,参数为1时返回绝对地址,参数为2或者3时返回混合地址,参数为4时返回相对地址。因此,图15-34示例中E3单元格的公式代码如下,向下填充到E8:

=ADDRESS(B3,C3,D3)

ADDRESS( )函数从设计上提供了动态地址工具。但是,由于Excel单元格的引用功能十分方便,所以这一地址工具的作用被大大降低了。

9.INDIRECT( )函数

用途:用于返回由文本字符串指定的单元格引用。即参数给定的文本字符串表示地址,而INDIRECT( )函数返回这一地址单元格的值。

用法:INDIRECT(Ref_Text, [A1])

说明:

图15-35 INDIRECT( )函数示例

可以看到,对单元格最直接的引用方式就是单元格地址。

I5单元格的引用代码中的“INDIRECT”为工作表名称。

INDIRECT( )函数仅仅给出一个文本形式的地址的单元格信息,且只能是单元格。因为从严格意义上讲,Excel公式就是对单元格赋值的过程。

INDIRECT( )函数常用于多个工作表数据的合并汇总等工作之中,引用给多个工作表的数据提供了便利。鉴于篇幅关系,在此不再赘述。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈