查询与引用函数
一、ADDRESSCOLUMNROW

1 ADDRESS用于按照给定的行号和列标,建立文本类型的单元格地址。
其语法形式为:ADDRESS(row_num,column_num,abs_num,a1,sheet_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(行号,列标,引用类型,引用样式,工作表名称)
比如,ADDRESS(4,5,1,FALSE,"[Book1]Sheet1") 等于 "[Book1]Sheet1!R4C5"参见图1
05_01.jpg (43.16 KB)
2008-11-1 08:01
 

2 COLUMN用于返回给定引用的列标。
语法形式为:COLUMN(reference)

Reference为需要得到其列标的单元格或单元格区域。如果省略 reference,则假定为是对函数 COLUMN 所在单元格的引用。如果 reference 为一个单元格区域,并且函数 COLUMN 作为水平数组输入,则函数 COLUMN reference 中的列标以水平数组的形式返回。但是Reference 不能引用多个区域。

3 ROW用于返回给定引用的行号。
语法形式为:ROW(reference)

Reference为需要得到其行号的单元格或单元格区域。 如果省略 reference,则假定是对函数 ROW 所在单元格的引用。如果 reference 为一个单元格区域,并且函数 ROW 作为垂直数
组输入,则函数 ROW reference 的行号以垂直数组的形式返回。但是Reference 不能对多个区域进行引用。
二、AREASCOLUMNSINDEXROWS

1 AREAS用于返回引用中包含的区域个数。其中区域表示连续的单元格组或某个单元格。
其语法形式为AREAS(reference)

Reference为对某一单元格或单元格区域的引用,也可以引用多个区域。如果需要将几个引用指定为一个参数,则必须用括号括起来。

2 COLUMNS用于返回数组或引用的列数。
其语法形式为COLUMNS(array)

Array为需要得到其列数的数组、数组公式或对单元格区域的引用。

3 ROWS用于返回引用或数组的行数。
其语法形式为ROWS(array)

Array为需要得到其行数的数组、数组公式或对单元格区域的引用。
以上各函数示例见图2
05_02.jpg (18.38 KB)
2008-11-1 08:03
  2



4 INDEX用于返回表格或区域中的数值或对数值的引用。
函数 INDEX() 有两种形式:数组和引用。数组形式通常返回数值或数值数组;引用形式通常返回引用。
1INDEX(array,row_num,column_num) 返回数组中指定单元格或单元格数组的数值。

Array为单元格区域或数组常数。Row_num为数组中某行的行序号,函数从该行返回数值。Column_num为数组中某列的列序号,函数从该列返回数值。需注意的是Row_num column_num 必须指向 array 中的某一单元格,否则,函数 INDEX 返回错误值 #REF!
2INDEX(reference,row_num,column_num,area_num) 返回引用中指定单元格或单元格区域的引用。

Reference为对一个或多个单元格区域的引用。

Row_num为引用中某行的行序号,函数从该行返回一个引用。


Column_num为引用中某列的列序号,函数从该列返回一个引用。
需注意的是Row_numcolumn_num area_num 必须指向 reference 中的单元格;否则,函数 INDEX 返回错误值 #REF!。如果省略 row_num column_num,函数 INDEX 返回由 area_num 所指定的区域。

三、INDIRECTOFFSET

1 INDIRECT用于返回由文字串指定的引用。
当需要更改公式中单元格的引用,而不更改公式本身,使用函数 INDIRECT
其语法形式为:INDIRECT(ref_text,a1)

其中Ref_text为对单元格的引用,此单元格可以包含 A1-样式的引用、R1C1-样式的引用、定义为引用的名称或对文字串单元格的引用。如果 ref_text 不是合法的单元格的引用,函数 INDIRECT 返回错误值 #REF!


A1为一逻辑值,指明包含在单元格 ref_text 中的引用的类型。如果 a1 TRUE 或省略,ref_text 被解释为 A1-样式的引用。如果 a1 FALSEref_text 被解释为 R1C1-样式的引用。
需要注意的是:如果 ref_text 是对另一个工作簿的引用(外部引用),则那个工作簿必须被打开。如果源工作簿没有打开,函数 INDIRECT 返回错误值 #REF!

2 OFFSET函数用于以指定的引用为参照系,通过给定偏移量得到新的引用。
返回的引用可以是一个单元格或者单元格区域,并可以指定返回的行数或者列数。
其基本语法形式为:OFFSET(reference, rows, cols, height, width)
其中,reference变量作为偏移量参照系的引用区域(reference必须为对单元格或相连单元格区域的引用,否则,OFFSET函数返回错误值#VALUE!)

rows变量表示相对于偏移量参照系的左上角单元格向上(向下)偏移的行数(例如rows使用2作为参数,表示目标引用区域的左上角单元格比reference2),行数可为正数(代表在起始
引用单元格的下方)或者负数(代表在起始引用单元格的上方)或者vlookup和column结合0(代表起始引用单元格)

cols表示相对于偏移量参照系的左上角单元格向左(向右)偏移的列数(例如cols使用4作为参数,表示目标引用区域的左上角单元格比reference右移4),列数可为正数(代表在起始引用单元格的右边)或者负数(代表在起始引用单元格的左边)
如果行数或者列数偏移量超出工作表边缘,OFFSET函数将返回错误值#REF!。height变量表示高度,即所要返回的引用区域的行数(height必须为正数)width变量表示宽度,即所要返回的引用区域的列数(width必须为正数)。如果省略height或者width,则假设其高度或者宽度与reference相同。例如,公式OFFSET(A1,2,3,4,5)表示比单元格A1靠下2行并靠右3列的45列的区域(D3:H7区域)
由此可见,OFFSET函数实际上并不移动任何单元格或者更改选定区域,它只是返回一个引用。
四、HLOOKUPLOOKUPMATCHVLOOKUP

1 LOOKUP函数与MATCH函数

LOOKUP函数可以返回向量(单行区域或单列区域)或数组中的数值。此系列函数用于在表格或数值数组的首行查指定的数值,并由此返回表格或数组当前列中指定行处的数值。当比较值位于数据表的首行,并且要查下面给定行中的数据时,使用函数 HLOOKUP。当比较值位于要进行数据查的左边一列时,使用函数 VLOOKUP
如果需要出匹配元素的位置而不是匹配元素本身,则应该使用函数 MATCH 而不是函数 LOOKUPMATCH函数用来返回在指定方式下与指定数值匹配的数组中元素的相应位置。从以上分析可知,查函数的功能,一是按搜索条件,返回被搜索区域内数据的一个数据值;二是按搜索条件,返回被搜索区域内某一数据所在的位置值。利用这两大功能,不仅能实现数据的查询,而且也能解决如"定级"之类的实际问题。

2 LOOKUP用于返回向量(单行区域或单列区域)或数组中的数值。
函数 LOOKUP 有两种语法形式:向量和数组。
1 向量形式
函数 LOOKUP 的向量形式是在单行区域或单列区域(向量)中查数值,然后返回第二个单行区域或单列区域中相同位置的数值。
其基本语法形式为LOOKUP(lookup_value,lookup_vector,result_vector)

Lookup_value为函数 LOOKUP 在第一个向量中所要查的数值。Lookup_value 可以为数字、文本、逻辑值或包含数值的名称或引用。

Lookup_vector为只包含一行或一列的区域。Lookup_vector 的数值可以为文本、数字或逻辑值。
需要注意的是Lookup_vector 的数值必须按升序排序:...-2-1012...A-ZFALSETRUE;否则,函数 LOOKUP 不能返回正确的结果。文本不区分大小写。

Result_vector 只包含一行或一列的区域,其大小必须与 lookup_vector 相同。
如果函数 LOOKUP 不到 lookup_value,则查 lookup_vector 中小于或等于 lookup_value 的最大数值。
如果 lookup_value 小于 lookup_vector 中的最小值,函数 LOOKUP 返回错误值 #N/A
示例详见图3
05_03.jpg (37.9 KB)
2008-11-1 08:05
2 数组形式
函数 LOOKUP 的数组形式在数组的第一行或第一列查指定的数值,然后返回数组的最后一行或最后一列中相同位置的数值。通常情况下,最好使用函数 HLOOKUP 或函数 VLOOKUP 来替代函数 LOOKUP 的数组形式。函数 LOOKUP 的这种形式主要用于与其他电子表格兼容。关于LOOKUP的数组形式的用法在此不再赘述,感兴趣的可以参看Excel的帮助。

3 HLOOKUPVLOOKUP

HLOOKUP用于在表格或数值数组的首行查指定的数值,并由此返回表格或数组当前列中指定行处的数值。

VLOOKUP用于在表格或数值数组的首列查指定的数值,并由此返回表格或数组当前行中指定列处的数值。
当比较值位于数据表的首行,并且要查下面给定行中的数据时,请使用函数 HLOOKUP
当比较值位于要进行数据查的左边一列时,请使用函数 VLOOKUP
语法形式为:

HLOOKUP(lookup_value,table_array,row_index_num,range_lookup)

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

其中,Lookup_value表示要查的值,它必须位于自定义查区域的最左列。Lookup_value 可以为数值、引用或文字串。

Table_array查的区域,用于查数据的区域,上面的查值必须位于这个区域的最左列。可以使用对区域或区域名称的引用。

Row_index_num table_array 中待返回的匹配值的行序号。Row_index_num 1 时,返回 table_array 第一行的数值,row_index_num 2 时,返回 table_array 第二行的数值,以此类推。


Col_index_num为相对列号。最左列为1,其右边一列为2,依此类推.

Range_lookup为一逻辑值,指明函数 HLOOKUP 查时是精确匹配,还是近似匹配。