2017年最全的excel函数大全3—查找和引用函数(下)

字数 4227阅读 420

上次给大家分享了《2017年最全的excel函数大全(3)——查找和引用函数(上)》,这次分享给大家查找和引用函数(下)。


INDIRECT 函数

描述


返回由文本字符串指定的引用。此函数立即对引用进行计算,并显示其内容。如果需要更改公式中对单元格的引用,而不更改公式本身,请使用函数 INDIRECT。   


用法 


INDIRECT(ref_text, [a1])


 INDIRECT 函数语法具有以下参数:


Ø  Ref_text    必需。对单元格的引用,此单元格包含 A1 样式的引用、R1C1 样式的引用、定义为引用的名称或对作为文本字符串的单元格的引用。如果 ref_text 不是合法的单元格引用,则 INDIRECT 返回 错误值。


ü  如果 ref_text 是对另一个工作簿的引用(外部引用),则被引用的工作簿必须已打开。如果源工作簿没有打开,则 INDIRECT 返回错误值 #REF!。


ü  注意    Excel Web App 中不支持外部引用。


ü  如果 ref_text 引用的单元格区域超出 1,048,576 这一行限制或 16,384 (XFD) 这一列限制,则 INDIRECT 返回错误 #REF!。


Ø  A1    可选。一个逻辑值,用于指定包含在单元格 ref_text 中的引用的类型。


ü  如果 a1 为 TRUE 或省略,ref_text 被解释为 A1-样式的引用。


ü  如果 a1 为 FALSE,则将 ref_text 解释为 R1C1 样式的引用。


案例

 

LOOKUP 函数


描述


当您需要查询一行或一列并查找另一行或列中的相同位置的值时,会使用其中一个查找和引用函数 LOOKUP。


例如,假设你知道某个汽车部件的部件号,但是不知道价格。 如果在单元格 H1 中输入汽车部件号,可在单元格 H2 中使用 LOOKUP 函数返回价格。

可使用 LOOKUP 函数搜索一行或一列。 在上面的示例中,我们在 D 列中搜索价格。


可使用 VLOOKUP 搜索一行或一列,或搜索多行和多列(如表)。


LOOKUP 有两种使用方式:向量形式和数组形式



向量形式


可使用 LOOKUP 的这种形式在一行或一列中搜索值。 如果要指定包含要匹配的值的区域,请使用这种形式。 例如,如果要在 A 列中向下搜索值到第 6 行。


LOOKUP 的向量形式在单行区域或单列区域(称为“向量”)中查找值,然后返回第二个单行区域或单列区域中相同位置的值。


用法


LOOKUP(lookup_value, lookup_vector, [result_vector])


LOOKUP 函数向量形式语法具有以下参数:


Ø  lookup_value    必需。 LOOKUP 在第一个向量中搜索的值。 Lookup_value 可以是数字、文本、逻辑值、名称或对值的引用。


Ø  lookup_vector    必需。 只包含一行或一列的区域。 lookup_vector 中的值可以是文本、数字或逻辑值。


重要: lookup_vector 中的值必须按升序排列:..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE;否则,LOOKUP 可能无法返回正确的值。 文本不区分大小写。


Ø  result_vector    可选。只包含一行或一列的区域。result_vector 参数必须与 lookup_vector 参数大小相同。其大小必须相同。


其他


如果 LOOKUP 函数找不到 lookup_value,则该函数会与 lookup_vector 中小于或等于 lookup_value 的最大值进行匹配。


如果 lookup_value 小于 lookup_vector 中的最小值,则 LOOKUP 会返回 #N/A 错误值。


案例


案例1


数组形式


强烈建议使用 VLOOKUP 或 HLOOKUP,不要使用数组形式。


数组是要搜索的行和列(如表)中的值的集合。 例如,如果要在 A 列和 B 列中向下搜索值到第 6 行。 LOOKUP 将返回最接近的匹配项。 要使用数组形式,必须对数据排序。



LOOKUP 的数组形式在数组的第一行或第一列中查找指定的值,并返回数组最后一行或最后一列中同一位置的值。当要匹配的值位于数组的第一行或第一列中时,请使用 LOOKUP 的这种形式。


用法


LOOKUP(lookup_value, array)


LOOKUP 函数数组形式语法具有以下参数:


Ø  lookup_value    必需。 LOOKUP 在数组中搜索的值。 lookup_value 参数可以是数字、文本、逻辑值、名称或对值的引用。


ü  如果 LOOKUP 找不到 lookup_value 的值,它会使用数组中小于或等于 lookup_value 的最大值。


ü  如果 lookup_value 的值小于第一行或第一列中的最小值(取决于数组维度),LOOKUP 会返回 #N/A 错误值。


Ø  array    必需。 包含要与 lookup_value 进行比较的文本、数字或逻辑值的单元格区域。


LOOKUP 的数组形式与 HLOOKUP 和 VLOOKUP 函数非常相似。 区别在于:HLOOKUP 在第一行中搜索 lookup_value 的值,VLOOKUP 在第一列中搜索,而 LOOKUP 根据数组维度进行搜索。


ü  如果数组包含宽度比高度大的区域(列数多于行数)LOOKUP 会在第一行中搜索 lookup_value 的值。


ü  如果数组是正方的或者高度大于宽度(行数多于列数),LOOKUP 会在第一列中进行搜索。


ü  使用 HLOOKUP 和 VLOOKUP 函数,您可以通过索引以向下或遍历的方式搜索,但是 LOOKUP 始终选择行或列中的最后一个值。


重要: 数组中的值必须按升序排列:..., -2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE;否则,LOOKUP 可能无法返回正确的值。 文本不区分大小写。



MATCH 函数


描述


使用 MATCH 函数在 范围 单元格中搜索特定的项,然后返回该项在此区域中的相对位置。例如,如果 A1:A3 区域中包含值 5、25 和 38,那么公式 =MATCH(25,A1:A3,0) 返回数字 2,因为 25 是该区域中的第二项。


提示: 当您需要项目在区域中的位置而非项目本身时,使用 MATCH 而不是 LOOKUP 函数之一。例如,您可以使用 MATCH 函数提供 INDEX 函数的 row_num 参数值。


用法


MATCH(lookup_value, lookup_array, [match_type])


MATCH 函数语法具有下列参数:


Ø  lookup_value    必需。要在 lookup_array 中匹配的值。例如,如果要在电话簿中查找某人的电话号码,则应该将姓名作为查找值,但实际上需要的是电话号码。


lookup_value 参数可以为值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。


Ø  lookup_array    必需。要搜索的单元格区域。


Ø  match_type    可选。数字 -1、0 或 1。match_type 参数指定 Excel 如何将 lookup_value 与 lookup_array 中的值匹配。此参数的默认值为 1。


下表介绍该函数如何根据 match_type 参数的设置查找值。

ü  MATCH 返回匹配值在 lookup_array 中的位置,而非其值本身。例如,MATCH("b",{"a","b","c"},0)返回 2,即“b”在数组 {"a","b","c"} 中的相对位置。


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


ü  如果 MATCH 函数查找匹配项不成功,它会返回错误值 #N/A。


ü  如果 match_type 为 0 且 lookup_value 为文本字符串,您可在 lookup_value 参数中使用通配符 - 问号 (?) 和星号 (*) 。问号匹配任意单个字符;星号匹配任意一串字符。如果要查找实际的问号或星号,请在字符前键入波形符 (~)。


案例

 


OFFSET 函数



描述


返回对单元格或单元格区域中指定行数和列数的区域的引用。 返回的引用可以是单个单元格或单元格区域。 可以指定要返回的行数和列数。


用法


OFFSET(reference, rows, cols, [height], [width])


OFFSET 函数语法具有下列参数:


Ø  引用    必需。 要以其为偏移量的底数的引用。 引用必须是对单元格或相邻的单元格区域的引用;否则OFFSET 返回 错误值 #VALUE!。


Ø  Rows    必需。 需要左上角单元格引用的向上或向下行数。 使用 5 作为 rows 参数,可指定引用中的左上角单元格为引用下方的 5 行。 Rows 可为正数(这意味着在起始引用的下方)或负数(这意味着在起始引用的上方)。


Ø  Cols    必需。 需要结果的左上角单元格引用的从左到右的列数。 使用 5 作为 cols 参数,可指定引用中的左上角单元格为引用右方的 5 列。 Cols 可为正数(这意味着在起始引用的右侧)或负数(这意味着在起始引用的左侧)。


Ø  高度    可选。 需要返回的引用的行高。 Height 必须为正数。


Ø  宽度    可选。 需要返回的引用的列宽。 Width 必须为正数。


其他


ü  如果 rows 和 cols 的偏移使引用超出了工作表边缘,则 OFFSET 返回, 错误值 #REF!。


ü  如果省略 height 或 width,则假设其高度或宽度与 reference 相同。


ü  OFFSET 实际上并不移动任何单元格或更改选定区域;它只是返回一个引用。 OFFSET 可以与任何期待引用参数的函数一起使用。 例如,公式 SUM(OFFSET(C2,1,2,3,1)) 可计算 3 行 1 列区域(即单元格 C2 下方的 1 行和右侧的 2 列的 3 行 1 列区域)的总值。


案例




ROW 函数


描述


返回引用的行号。


用法


ROW([reference])


ROW 函数语法具有下列参数:


Ø  Reference    可选。 需要得到其行号的单元格或单元格区域。


ü  如果省略 reference,则假定是对函数 ROW 所在单元格的引用。


ü  如果 reference 为一个单元格区域,并且 ROW 作为垂直数组输入,则 ROW 将以垂直数组的形式返回 reference 的行号。


ü  Reference 不能引用多个区域。


案例



ROWS 函数


描述


返回引用或数组的行数。


用法


ROWS(array)


ROWS 函数语法具有以下参数:


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


案例



RTD 函数


描述


从支持 COM 自动化的程序中检索实时数据


用法


RTD(ProgID, server, topic1, [topic2], ...)


RTD 函数语法具有下列参数:


Ø  ProgID    必需。 已安装在本地计算机上的已注册 COM 自动化加载项 ProgID 的名称。 将该名称用引号括起来。


Ø  server    必需。应运行加载项的服务器的名称。如果没有服务器,则在本地运行程序,将此参数保留为空。否则,输入引号 ("") 将服务器名称括起来。在 Visual Basic for Applications (VBA) 中使用 RTD 时,服务器需要双引号或 VBA Nullstring 属性,即使在本地运行服务器也不例外。


Ø  Topic1, topic2, ...    Topic1 是必需的,后续主题是可选的。 1 到 253 个参数,这些参数放在一起代表一个唯一的实时数据。


其他


ü  必须在本地计算机上创建和注册 RTD COM 自动化加载项。 如果未安装实时数据服务器,则在尝试使用 RTD 函数时,单元格中将出现错误消息。


ü  如果服务器继续更新结果,那么与其他函数不同,RTD 公式将在 Microsoft Excel 处于自动计算模式时进行更改。


案例

注释

必须在本地计算机上创建和注册 RTD COM 自动化加载项。 如果未安装实时数据服务器,则在试图使用 RTD 函数时 将在单元格中出现一则错误消息 #NAME?。


TRANSPOSE 函数


描述


TRANSPOSE 函数可返回转置单元格区域,即将行单元格区域转置成列单元格区域,反之亦然。TRANSPOSE 函数必须在与源单元格范围具有相同行数和列数的单元格区域中作为数组公式分别输入。使用 TRANSPOSE 可以转置数组或工作表上单元格区域的垂直和水平方向。


用法


TRANSPOSE(array)


TRANSPOSE 函数语法具有以下参数:


Ø  array    必需。需要进行转置的数组或工作表上的单元格区域。所谓数组的转置就是,将数组的第一行作为新数组的第一列,数组的第二行作为新数组的第二列,以此类推。如果不确定如何输入数组公式,请参阅输入数组公式。



案例


有时,你需要切换或旋转单元格。可通过复制、粘贴和使用“转置”选项来执行此操作。但这样做会创建重复的数据。如果不希望产生重复数据,可选择键入公式,而不是用 TRANSPOSE 函数。


例如,在下图中,公式 =TRANSPOSE(A1:B4) 会选取单元格 A1 到 B4,并将它们水平排列。


上方为原始单元格,下方的单元格使用 TRANSPOSE 函数


步骤 1:选择空白单元格


首先选择一些空白单元格。但请确保选择的单元格数量与原始单元格数量相同,但方向不同。例如,此处有 8 个垂直排列的单元格:



因此,我们要选择 8 个水平排列的单元格,如下所示:



转置的新单元格将位于此处。


步骤 2:键入 =TRANSPOSE(


使这些空单元格保持选中状态,键入:=TRANSPOSE(


Excel 的外观将如下所示:



请注意,即使已开始输入公式,8 个单元格仍处于选中状态。


步骤 3:键入原始单元格的范围。


现在,键入想要转置的单元格范围。在此示例中,我们要转置单元格 A1 到 B4。所以此示例的公式是:= TRANSPOSE(A1:B4) -- ,但此时还不能按 Enter!停止键入,转到下一步。


Excel 的外观将如下所示:



步骤 4:最后,按 Ctrl+Shift+Enter


现在按 Ctrl+Shift+Enter。为什么?因为 TRANSPOSE 函数仅适用于数组公式,而这就是数组公式的结束方式。简而言之,数组公式就是一个应用于多个单元格的公式。因为在步骤 1 中选择了多个单元格,因此该公式将应用于多个单元格。按 Ctrl+Shift+Enter 后,结果如下:


提示


ü  无需手动键入范围。键入 =TRANSPOSE( 后,可使用鼠标选择范围。只需单击并从范围的开始处拖到结尾处。但请记住:完成操作后,请按 Ctrl+Shift+Enter,而不只是 Enter。


ü  还需转换文本和单元格格式?尝试复制、粘贴和使用“转置”选项。但请注意,此操作会创建重复内容。因此,如果原始单元格发生更改,副本不会更新。



VLOOKUP 函数


描述


如果需要在表格或区域中按行查找内容,可使用 VLOOKUP,它是一个查找和引用函数。=VLOOKUP(要查找的值、要在其中查找值的区域、区域中包含返回值的列号、精确匹配或近似匹配 – 指定为 0/FALSE 或 1/TRUE)。


用法


VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])

案例


案例 1


案例 2


案例 3


案例 4


案例 5


以上是所有excel的查找和引用函数(下)说明语法以及使用案例。这次分享中存在哪些疑问或者哪些不足,可以在下面进行评论。如果觉得不错,可以分享给你的朋友,让大家一起掌握这些excel的查找和引用函数。

推荐阅读更多精彩内容