我现在有一个表格,A行有:产品代码,产品名称,单价3项。
B行有:001,剪刀A,3元
我可以用什么函数在另一个A行一模一样的表格里,在B行里只输入001,后面的剪刀A,3元等资料自动出现呢?
本人对excel没什么研究,工作上需要的只是这个函数指令了,所以不打算深究,希望各位能提供具体方法,谢谢!
可以用VLOOKUP配合Column函数使用,以下图为例:
要在Sheet2建立数据连接,则Sheet2表的B2单元格输入公式:
=VLOOKUP($A2,Sheet1!$A:$C,COLUMN(),0)
公式向右拖到C2再向下拖拉复制,结果如下:
公式解析及知识扩展:
VLOOKUP 中的 V 表示垂直方向。当比较值位于所需查找的数据的左边一列时,可以使用 VLOOKUP 。
语法
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
VLOOKUP 函数语法具有下列参数:
lookup_value 必需。要在表格或区域的第一列中搜索的值。lookup_value 参数可以是值或引用。如果为 lookup_value 参数提供的值小于 table_array 参数第一列中的最小值,则 VLOOKUP 将返回错误值 #N/A。
table_array 必需。包含数据的单元格区域。可以使用对区域(如本示例中的Sheet1!$A:$C)或区域名称的引用。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。
col_index_num 必需。table_array 参数中必须返回的匹配值的列号。col_index_num 参数为 1 时,返回 table_array 第一列中的值;col_index_num 为 2 时,返回 table_array 第二列中的值,依此类推。
如果 col_index_num 参数:
小于 1,则 VLOOKUP 返回错误值 #VALUE!。
大于 table_array 的列数,则 VLOOKUP 返回错误值 #REF!。
range_lookup 可选。一个逻辑值,指定希望 VLOOKUP 查找精确匹配值还是近似匹配值:
如果 range_lookup 为 TRUE 或被省略,则返回精确匹配值或近似匹配值。如果找不到精确匹配值,则返回小于 lookup_value 的最大值。
要点 如果 range_lookup 为 TRUE 或被省略,则必须按升序排列 table_array 第一列中的值;否则,VLOOKUP 可能无法返回正确的值。
有关详细信息,请参阅对区域或表中的数据进行排序。
如果 range_lookup 为 FALSE,则不需要对 table_array 第一列中的值进行排序。
如果 range_lookup 参数为 FALSE,VLOOKUP 将只查找精确匹配值。如果 table_array 的第一列中有两个或更多值与 lookup_value 匹配,则使用第一个找到的值。如果找不到精确匹配值,则返回错误值 #N/A。
本示例为FALSE,既公式后的数字0。
本示例中,VLOOKUP函数的第3个参数col_index_num使用了函数COLUMN(),是为了公式向右拖拉而设的,COLUMN()函数:返回公式所在列的列号数,如公式在第2列(B列),则结果为2,如公式在第3列(C列),则结果为3,依此类推。
可以用VLOOKUP配合Column函数使用,以下图为例:
要在Sheet2建立数据连接,则Sheet2表的B2单元格输入公式:=VLOOKUP($A2,Sheet1!$A:$C,COLUMN(),0)
公式向右拖到C2再向下拖拉复制,结果如下:
公式解析及知识扩展:
VLOOKUP 中的 V 表示垂直方向。当比较值位于所需查找的数据的左边一列时,可以使用 VLOOKUP 。
语法VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
VLOOKUP 函数语法具有下列参数:
lookup_value 必需。要在表格或区域的第一列中搜索的值。lookup_value 参数可以是值或引用。如果为 lookup_value 参数提供的值小于 table_array 参数第一列中的最小值,则 VLOOKUP 将返回错误值 #N/A。table_array 必需。包含数据的单元格区域。可以使用对区域(如本示例中的Sheet1!$A:$C)或区域名称的引用。table_array 第一列中的值是由 lookup_value 搜索的值。这些值可以是文本、数字或逻辑值。文本不区分大小写。 col_index_num 必需。table_array 参数中必须返回的匹配值的列号。col_index_num 参数为 1 时,返回 table_array 第一列中的值;col_index_num 为 2 时,返回 table_array
第二列中的值,依此类推。如果 col_index_num 参数:小于 1,则 VLOOKUP 返回错误值 #VALUE!。大于 table_array 的列数,则 VLOOKUP 返回错误值 #REF!。range_lookup 可选。一个逻辑值,指定希望 VLOOKUP 查找精确匹配值还是近似匹配值:如果 range_lookup 为 TRUE 或被省略,则返回精确匹配值或近似匹配值。如果找不到精确匹配值,则返回小于 lookup_value 的最大值。 要点 如果 range_lookup 为 TRUE 或被省略,则必须按升序排列 table_array 第一列中的值;否则,VLOOKUP 可能无法返回正确的值。
有关详细信息,请参阅对区域或表中的数据进行排序。
如果 range_lookup 为 FALSE,则不需要对 table_array 第一列中的值进行排序。
如果 range_lookup 参数为 FALSE,VLOOKUP 将只查找精确匹配值。
如果 table_array 的第一列中有两个或更多值与 lookup_value 匹配,则使用第一个找到的值。
如果找不到精确匹配值,则返回错误值 #N/A。
本示例为FALSE,既公式后的数字0。
本示例中,VLOOKUP函数的第3个参数col_index_num使用了函数COLUMN(),是为了公式向右拖拉而设的,COLUMN()函数:返回公式所在列的列号数,如公式在第2列(B列),则结果为2,如公式在第3列(C列),则结果为3,依此类推。