首页 理论教育 Excel VLOOKUP函数详解:投行建模分析师手册

Excel VLOOKUP函数详解:投行建模分析师手册

时间:2023-08-03 理论教育 版权反馈
【摘要】:VLOOKUP函数根据给定的查询元素,在一个二维数据表的首列中搜索与之匹配的值,并根据匹配值所在的行,返回该行中指定列的数据。以下通过一个具体实例说明VLOOKUP函数的实际应用。最后一个参数0代表要求VLOOKUP函数进行精确的匹配查询。现根据给定的账户余额,使用VLOOKUP函数查询适用利率,由于存款金额为连续数据,因此本例需要使用近似查询功能。VLOOKUP函数的其他注意事项。否则,VLOOKUP可能返回不正确或意外的值。

Excel VLOOKUP函数详解:投行建模分析师手册

VLOOKUP函数根据给定的查询元素,在一个二维数据表的首列中搜索与之匹配的值,并根据匹配值所在的行,返回该行中指定列的数据。和INDEX函数的行列参数均由用户指定不同,VLOOKUP函数返回数据的特点是:在原始数据二维表中的所在列由参数指定,所在行则根据待查询元素在二维表首列的匹配结果决定。VLOOKUP函数的语法形式为:VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

其中,Lookup_value为待查询的数据元素,VLOOKUP将在表格数组的第一列中查找该元素。

Table_array为由两列或多列数据组成的原始数据二维表,通常使用单元格区域引用。

Col_index_num为table_array中待返回的匹配值的列序号。Col_index_num为1时,返回table_array第一列中的数值;col_index_num为2时,返回table_array第二列中的数值,以此类推。

Range_lookup为逻辑值,指定希望VLOOKUP查找精确的匹配值还是近似匹配值。

如果为TRUE(或1)或省略,则返回精确匹配值或近似匹配值,也即如找不到精确匹配值,则返回小于lookup_value的最大数值。要注意的是,近似匹配查询要求table_array第一列中的值必须以升序排序,否则VLOOKUP可能无法返回正确的值。

如果为FALSE(或0),VLOOKUP将只寻找精确匹配值。在此情况下,table_array第一列的值不需要排序。如果table_array第一列中有两个或多个值与lookup_value匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值“#N/A”。

■ VLOOKUP的精确匹配查询。

以下通过一个具体实例说明VLOOKUP函数的实际应用。下表中的B6∶D12区域是一个股票估值数据表,包含公司代码、PE和PB三列数据,现给定股票代码查询该公司的市盈率数据可通过VLOOKUP函数实现,公式为:

=VLOOKUP($F6,$B$6∶$D$12,2,0),其中F6为待查询数据即股票代码,B6∶D12为原始数据表,参数2为需返回的列号,即B6∶D12区域的第2列或市盈率(PE)所在列。最后一个参数0代表要求VLOOKUP函数进行精确的匹配查询。

VLOOKUP函数在B6∶D12的首列即B6∶B12区域查询指定的股票代码“601137.SH”,匹配值位于该区域的第4行,指定的返回列号为2,因此,函数返回数据18.1(见图4-13)。

978-7-111-47762-4-Chapter04-15.jpg

图4-13 VLOOKUP的精确匹配查询(www.xing528.com)

■ VLOOKUP的近似匹配。

下表是一个不同存款金额区间适用的年利率表,例如存款金额不足1000元的适用利率3%,存款金额超过50000元的适用利率6%。现根据给定的账户余额,使用VLOOKUP函数查询适用利率,由于存款金额为连续数据,因此本例需要使用近似查询功能。例如,给定账户余额为45000元,则使用的查询公式为:

=VLOOKUP(G17,B18∶D21,3,1)

其中G17为待查询的账户余额,B18∶D21为利率数据表,参数“3”为返回数据在利率数据表中的列号即“利息率”所在列,最后一个参数“1”代表近似匹配查询,即在数据表首列B18∶B21中查询45000,如未找到精确匹配值,则查找小于等于45000的最大值所在行,查询结果为第3行,指定的列号为3,因此函数返回数据5%。注意,使用近似查询要求原始数据表的首列按升序排列,另外,第4个参数在缺省状态下等同于TRUE或1(见图4-14)。

978-7-111-47762-4-Chapter04-16.jpg

图4-14 VLOOKUP函数的近似查询

回顾4.2.1中的多重嵌套IF案例(见图45),显然,如改用VLOOKUP执行近似查询可以大幅度简化公式的复杂程度,使得模型更容易维护。

VLOOKUP函数的其他注意事项。

■ 如待搜索数据为数字或日期值,应确保table_array第一列中的数据未被存储为文本格式。否则,VLOOKUP可能返回不正确或意外的值。

■ 如查询模式参数range_lookup为FALSE(或0)且lookup_value为文本,则可在lookup_value中使用通配符问号(?)和星号(∗)。问号匹配任意单个字符;星号匹配任意字符序列。如要查找实际的问号或星号,请在该字符前键入波形符(~)。

■ 在table_array第一列中搜索文本值时,请确保table_array第一列中的数据没有前导空格、尾随空格和非打印字符,并确保直引号(′或″)与弯引号(‘或“)的使用保持一致。否则,VLOOKUP可能返回不正确或意外的值。

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

我要反馈