首页 > 代码库 > Excel教程(11) - 查找和引用函数

Excel教程(11) - 查找和引用函数

ADDRESS

用途:以文字形式返回对工作簿中某一单元格的引用。
    语法: sheADDRESS(row_num,column_num,abs_num,a1,et_text)
参数:Row_num 是单元格引用中使用的行号;Column_num 是单元格引用中使用的列标;Abs_num 指明返回的引用类型(1 或省略为绝对引用,2 绝对行号、相对列标,3 相对行号、绝 对列标,4 是相对引用);A1 是一个逻辑值,它用来指明是以 A1 或 R1C1 返回引用样式。如果 A1 为 TRUE 或省略,函数 ADDRESS 返回 A1 样式的引用;如果 A1 为 FALSE,函数 ADDRESS 返回 R1C1 样式的引用。Sheet_text 为一文本,指明作为外部引用的工 作表的名称,如果省略 sheet_text,则不使用任何工作表的 名称。 

实例:公式“=ADDRESS(1,4,4,1)”返回 D1。

AREAS

  用途:返回引用中包含的区域个数。
语法:AREAS(reference)。
参数:Reference 是对某一单元格或单元格区域的引用, 也可以引用多个区域。
注意:如果需要将几个引用指定为一个参数,则必须用括 号括起来,以免 Excel 将逗号作为参数间的分隔符。
实例:公式“=AREAS(a2:b4)”返回 1,=AREAS((A1:A3, A4:A6,B4:B7,A16:A18))返回 4。

CHOOSE

用途:可以根据给定的索引值,从多达 29 个待选参数中 选出相应的值或操作。
语法:CHOOSE(index_num,value1,value2,...)。
参数:Index_num 是用来指明待选参数序号的值,它必须 是1到 29 之间的数字、或者是包含数字1到 29 的公式或单元 格引用;Value1,value2,...为1到 29 个数值参数,可以是 数字、单元格,已定义的名称、公式、函数或文本。
实例:公式“=CHOOSE(2,"电脑","爱好者")返回“爱好 者”。公式“=SUM(A1:CHOOSE(3,A10,A20,A30))”与公式 “=SUM(A1:A30)”等价(因为 CHOOSE(3,A10,A20,A30)返回A30)。 

COLUMN

用途:返回给定引用的列标。
语法:COLUMN(reference)。
参数:Reference 为需要得到其列标的单元格或单元格区 域。如果省略 reference,则假定函数 COLUMN 是对所在单元 格的引用。如果 reference 为一个单元格区域,并且函数 COLUMN 作为水平数组输入,则 COLUMN 函数将 reference 中的 列标以水平数组的形式返回。 

实例:公式“=COLUMN(A3)”返回 1,=COLUMN(B3:C5)返回 2。 

HLOOKUP

用途:在表格或数值数组的首行查找指定的数值,并由此 返回表格或数组当前列中指定行处的数值。
语法:HLOOKUP(lookup_value,table_array, row_index_num,range_lookup)
参数:Lookup_value 是需要在数据表第一行中查找的数 值,它可以是数值、引用或文字串;Table_array 是需要在其 中查找数据的数据表,可以使用对区域或区域名称的引用, Table_array 的第一行的数值可以是文本、数字或逻辑值。 Row_index_num 为 table_array 中待返回的匹配值的行序号。 Range_lookup 为一逻辑值,指明函数 HLOOKUP 查找时是精确 匹配,还是近似匹配。
实例:如果 A1:B3 区域存放的数据为 34、23、68、69、 92、36,则公式“=HLOOKUP(34,A1:B3,1,FALSE)返回 34;=HLOOKUP(3,{1,2,3;"a","b","c";"d","e","f"},2, TRUE)返回“c”。 

HYPERLINK

用途:创建一个快捷方式,用以打开存储在网络服务器、 Intranet(Internet)或本地硬盘的其它文件。
语法:HYPERLINK(link_location,friendly_name)
参数:Link_location 是文件的路径和文件名,它还可以 指向文档中的某个更为具体的位置,如 Execl 工作表或工作簿 中特定的单元格或命名区域,或是指向 Word 文档中的书签。 路径可以是存储在硬盘驱动器上的文件,或是 Internet 或 Intranet 上的 URL 路径;Friendly_name 为单元格中显示的链 接文字或数字,它用蓝色显示并带有下划线。如果省略了 Friendly_name,单元格就将 link_location 显示为链接。
实例:HYPERLINK("http://www.mydrivers.com/","驱动 之家")会在工作表中显示文本“驱动之家”,单击它即可连接 到“http://www.mydrivers.com/”。公式 “=HYPERLINK("D:\README.TXT","说明文件")”在工作表中建立一个的蓝色“说明文件”链接,单击它可以打开 D 盘上的 README.TXT 文件。

INDEX

用途:返回表格或区域中的数值或对数值的引用。函数 INDEX()有两种形式:数组和引用。数组形式通常返回数值或 数值数组;引用形式通常返回引用。
语法:INDEX(array,row_num,column_num)返回数组中 指定的单元格或单元格数组的数值。INDEX(reference, row_num,column_num,area_num)返回引用中指定单元格或单 元格区域的引用。
参数:Array 为单元格区域或数组常数;Row_num 为数组 中某行的行序号,函数从该行返回数值。如果省略 row_num, 则必须有 column_num;Column_num 是数组中某列的列序号, 函数从该列返回数值。如果省略 column_num,则必须有 row_num。Reference 是对一个或多个单元格区域的引用,如 果为引用输入一个不连续的选定区域,必须用括号括起来。 Area_num 是选择引用中的一个区域,并返回该区域中 row_num 和 column_num 的交叉区域。选中或输入的第一个区域序号为 1,第二个为 2,以此类推。如果省略 area_num,则 INDEX 函 数使用区域 1。
实例:如果 A1=68、A2=96、A3=90,则公式“=INDEX(A1:A3, 1,1)”返回 68,=INDEX(A1:A3,1,1,1)返回 68。

INDIRECT

用途:返回由文字串指定的引用。此函数立即对引用进行 计算,并显示其内容。当需要更改公式中单元格的引用,而不 更改公式本身,即可使用 INDIRECT 函数。
语法:INDIRECT(ref_text,a1)。
参数:Ref_text 是对单元格的引用,此单元格可以包含 A1 样式的引用、R1C1 样式的引用、定义为引用的名称或对文 字串单元格的引用;A1 为一逻辑值,指明包含在单元格 ref_text 中的引用的类型。如果 a1 为 TRUE 或省略,ref_text 被解释为 A1-样式的引用。如果 a1 为 FALSE,ref_text 被解 释为 R1C1-样式的引用。
实例:如果单元格 A1 存放有文本 B1,而 B1 单元格中存 放了数值 68.75,则公式“=INDIRECT($A$1)”返回 68.75。 

LOOKUP

用途:返回向量(单行区域或单列区域)或数组中的数值。 该函数有两种语法形式:向量和数组,其向量形式是在单行区域或单列区域(向量)中查找数值,然后返回第二个单行区域或 单列区域中相同位置的数值;其数组形式在数组的第一行或第 一列查找指定的数值,然后返回数组的最后一行或最后一列中 相同位置的数值。
    语法 1(向量形式):LOOKUP(lookup_value, lookup_vector,result_vector)
    语法 2(数组形式):LOOKUP(lookup_value,array)。
    参数 1(向量形式):Lookup_value 为函数 LOOKUP 在第一 个向量中所要查找的数值。Lookup_value 可以为数字、文本、 逻辑值或包含数值的名称或引用。Lookup_vector 为只包含一 行或一列的区域。Lookup_vector 的数值可以为文本、数字或 逻辑值。
    参数 2(数组形式):Lookup_value 为函数 LOOKUP 在数组 中所要查找的数值。Lookup_value 可以为数字、文本、逻辑 值或包含数值的名称或引用。如果函数 LOOKUP 找不到 lookup_value,则使用数组中小于或等于 lookup_value 的最 大数值。Array 为包含文本、数字或逻辑值的单元格区域,它 的值用于与 lookup_value 进行比较。
注意:Lookup_vector 的数值必须按升序排列,否则 LOOKUP 函数不能返回正确的结果,参数中的文本不区分大小 写。
实例:如果 A1=68、A2=76、A3=85、A4=90,则公式 “=LOOKUP(76,A1:A4)”返回 2,=LOOKUP("bump",{"a",
1;"b",2;"c",3})返回 2。 

MATCH

用途:返回在指定方式下与指定数值匹配的数组中元素的 相应位置。如果需要找出匹配元素的位置而不是匹配元素本 身,则应该使用 MATCH 函数。
  语法:MATCH(lookup_value,lookup_array,match_type)。
参数:Lookup_value 为需要在数据表中查找的数值,它 可以是数值(或数字、文本或逻辑值)、对数字、文本或逻辑值 的单元格引用。Lookup_array 是可能包含所要查找的数值的 连续单元格区域,Lookup_array 可以是数组或数组引用; Match_type 为数字-1、0 或 1,它说明 Excel 如何在 lookup_array 中查找 lookup_value。如果 match_type 为 1, 函数 MATCH 查找小于或等于 lookup_value 的最大数值。如果 match_type 为 0,函数 MATCH 查找等于 lookup_value 的第一 个数值。如果 match_type 为-1,函数 MATCH 查找大于或等于 lookup_value 的最小数值。
注意:MATCH 函数返回 lookup_array 中目标值的位置, 而不是数值本身。如果 match_type 为 0 且 lookup_value 为文 本,lookup_value 可以包含通配符(“*”和“?”)。星号可 以匹配任何字符序列,问号可以匹配单个字符。
实例:如果 A1=68、A2=76、A3=85、A4=90,则公式 “=MATCH(90,A1:A5,0)”返回 3。 

OFFSET

用途:以指定的引用为参照系,通过给定偏移量得到新的 引用。返回的引用可以是一个单元格或单元格区域,并可以指 定返回的行数或列数。
  语法:OFFSET(reference,rows,cols,height,width)。
参数:Reference 是作为偏移量参照系的引用区域,它必 须是单元格或相连单元格区域的引用;Rows 是相对于偏移量 参照系的左上角单元格,上(下)偏移的行数。如果使用 5 作为 参数 Rows,则说明目标引用区域的左上角单元格比 reference 低 5 行。行数可为正数(代表在起始引用的下方)或负数(代表 在起始引用的上方);Cols 是相对于偏移量参照系的左上角单 元格,左(右)偏移的列数。如果使用 5 作为参数 Cols,则说 明目标引用区域的左上角的单元格比 reference 靠右 5 列。列 数可为正数(代表在起始引用的右边)或负数(代表在起始引用 的左边);Height 是要返回的引用区域的行数,Height 必须为 正数;Width 是要返回的引用区域的列数,Width 必须为正数。
实例:如果 A1=68、A2=76、A3=85、A4=90,则公式 “=SUM(OFFSET(A1:A2,2,0,2,1))”返回 177。

ROW

用途:返回给定引用的行号。
  语法:ROW(reference)。
    Reference 为需要得到其行号的单元格或单元格区域。
  实例:公式“=ROW(A6)”返回 6,如果在 C5 单元格中输 入公式“=ROW()”,其计算结果为 5。

ROWS

用途:返回引用或数组的行数。
语法:ROWS(array)。
参数:Array 是需要得到其行数的数组、数组公式或对单 元格区域的引用。 

实例:公式“=ROWS(A1:A9)”返回 9,=ROWS({1,2,3; 4,5,6;1,2,3})返回 3。 

RTD

用途:从支持 COM 自动化的程序中返回实时数据。
语法:RTD(ProgID,server,topic1,[topic2],...) 

参数:ProgID 已安装在本地计算机中,经过注册的 COM 自动化加载宏的 ProgID 名称,该名称用引号引起来。Server 是运行加载宏的服务器的名称。如果没有服务器,程序是在本 地计算机上运行,那么该参数为空白。topic1,topic2,...为1到 28 个参数,这些参数放在一起代表一个唯一的实时数 据。

TRANSPOSE

用途:返回区域的转置(所谓转置就是将数组的第一行作 为新数组的第一列,数组的第二行作为新数组的第二列,以此 类推)。
  语法:TRANSPOSE(array)。
  参数:Array 是需要转置的数组或工作表中的单元格区 域。 

实例:如果 A1=68、A2=76、B1=85、B2=90,那么公式 “{=TRANSPOSE(A1:B1)}”返回 C1=56、D1=98、C2=90、D2=87。 

VLOOKUP

  用途:在表格或数值数组的首列查找指定的数值,并由此 返回表格或数组当前行中指定列处的数值。当比较值位于数据 表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。
语法:VLOOKUP(lookup_value,table_array, col_index_num,range_lookup)
参数:Lookup_value 为需要在数据表第一列中查找的数 值,它可以是数值、引用或文字串。Table_array 为需要在其 中查找数据的数据表,可以使用对区域或区域名称的引用。 Col_index_num 为 table_array 中待返回的匹配值的列序号。 Col_index_num 为 1 时,返回 table_array 第一列中的数值; col_index_num 为 2,返回 table_array 第二列中的数值,以 此类推。Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回 时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近 似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值#N/A。
实例:如果 A1=23、A2=45、A3=50、A4=65,则公式 “=VLOOKUP(50,A1:A4,1,TRUE)”返回 50。

Excel教程(11) - 查找和引用函数