Excel将一个表的数据导入到另外一个表中方法总结
需求:有一总表,存有很多数据,假设包括唯一编号,价格,数量。现在有一个新表,是一个分类表,只是总表的无规律的某几行数据,只有唯一标号和总表对应,现在想最快的获取分类表A的数量和价格。
方法一:VLOOKUP函数
在“分类表A”的C2位置导入单价,输入以下公式=VLOOKUP(A2,总表!A:D,3,FALSE)

方法二:INDEX和MATCH配合使用(推荐使用)
  在“分类表A”的D2位置导入数量,输入以下公式=INDEX(总表!D:D,MATCH(分类A!A2,总表!A:A,0))
第一种方法VLOOKUP函数的缺陷(或者叫bug)
方法一VLOOKUP函数在总表中的查询范围,和返回结果的范围都在“总表!A:D”这句定义,感觉不是灵活,明明只需要在总表的A列匹配唯一编号,只返回C列的值,却需要把这三列都写进去。而且查询时这个函数默认是只查第一列A的,这个是经过我实验的,如下图总表,备件代号为2008,2014的名字叫2009,那么,按照VLOOKUP函数的说明,分类A表中的备件编号为2009的那列的单价会查到2008对应的8和2014对应的14,但是实际上结果一直是109。默认都是按照A列比对,不知道是这个函数过于智能,还是说明不够仔细,不知道哪位有经验的大神能解释一下。

附总表数据:


关键函数用法
VLOOKUP:
在 VLOOKUP 中的 V 代表垂直。

语法

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)

Lookup_value    为需要在数组第一列中查的数值。Lookup_value 可以为数值、引用或文本字符串。

Table_array    为需要在其中查数据的数据表。可以使用对区域或区域名称的引用,例如数据库或列表。

如果 range_lookup 为 TRUE,则 table_array 的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果 range_lookup 为 FALSE,table_array 不必进行排序。


通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。

Table_array 的第一列中的数值可以为文本、数字或逻辑值。

文本不区分大小写。

Col_index_num    为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array 第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,函数 VLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值 #REF!。

Range_lookup    为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 VLOOKUP 将返回精确匹
配值。如果不到,则返回错误值 #N/A。

说明

如果函数 VLOOKUP 不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。
如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。
如果函数 VLOOKUP 不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A。


MATCH 
全部显示全部隐藏返回在指定方式下与指定数值匹配的数组 (数组:用于建立可生成多个结果或可对在行和列中排列的一组参数进行运算的单个公式。数组区域共用一个公式;数组
常量是用作参数的一组常量。)中元素的相应位置。如果需要出匹配元素的位置而不是匹配元素本身,则应该使用 MATCH 函数而不是 LOOKUP 函数。

语法

MATCH(lookup_value,lookup_array,match_type)

Lookup_value    为需要在数据表中查的数值。

Lookup_value 为需要在 Look_array 中查的数值。例如,如果要在电话簿中查某人的电话号码,则应该将姓名作为查值,但实际上需要的是电话号码。
Lookup_value 可以为数值(数字、文本或逻辑值)或对数字、文本或逻辑值的单元格引用。
Lookup_array    可能包含所要查的数值的连续单元格区域。Lookup_array 应为数组或数组引用。


Match_type    为数字 -1、0 或 1。Match-type 指明 Microsoft Excel 如何在 lookup_array 中查 lookup_value。

如果 match_type 为 1,函数 MATCH 查小于或等于 lookup_value 的最大数值。Lookup_array 必须按升序排列:...、-2、-1、0、1、2、...、A-Z、FALSE、TRUE。
如果 match_type 为 0,函数 MATCH 查等于 lookup_value 的第一个数值。Lookup_array 可以按任何顺序排列。
如果 match_type 为 -1,函数 MATCH 查大于或等于 lookup_value 的最小数值。Lookup_array 必须按降序排列:TRUE、FALSE、Z-A、...、2、1、0、-1、-2、...,等等。
如果省略 match_type,则假设为 1。
说明

函数 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 可以包含通配符、星号 (*) 和问号 (?)。星号可以匹配任何字符序列;问号可以匹配单个字符。

INDEX


返回列表或数组中的元素值,此元素由行序号和列序号的索引值给定。

INDEX 函数有两种语法形式:数组和引用。数组形式通常返回数值或数值数组,引用形式通常返回引用。当函数 INDEX 的第一个参数为数组常数时,使用数组形式。

语法 1


数组形式

INDEX(array,row_num,column_num)

Array    为单元格区域或数组常量。

如果数组只包含一行或一列,则相对应的参数 row_num 或 column_num 为可选。

如果数组有多行和多列,但只使用 row_num 或 column_num,函数 INDEX 返回数组中的整行或整列,且返回值也为数组。

Row_num    数组中某行的行序号,函数从该行返回数值。如果省略 row_num,则必须有 column_num。

Column_num    数组中某列的列序号,函数从该列返回数值。如果省略 column_num,则必须有 row_num。

说明

如果同时使用 row_num 和 column_num,函数 INDEX 返回 row_num 和 column_num 交叉处的单元格的数值。
如果将 row_num 或 column_num 设置为 0,函数 INDEX 则分别返回整个列或行的数组数值。若要使用以数组形式返回的值,请将 INDEX 函数以数组公式形式输入,对于行以水平单元格区域的形式输入,对于列以垂直单元格区域的形式输入。若要输入数组公式,请按 Ctrl+Shift+Enter。
Row_num 和 column_num 必须指向 array 中的某一单元格;否则,函数 INDEX 返回错误值 #REF!。

示例 1


如果您将示例复制到空白工作表中,可能会更易于理解该示例。

操作方法

创建空白工作簿或工作表。
请在“帮助”主题中选取示例。不要选取行或列标题。

从帮助中选取示例。

按 Ctrl+C。
在工作表中,选中单元格 A1,再按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。
 
1
2
3
A B
数据 数据
苹果 柠檬
香蕉 梨
公式 说明(结果)
=INDEX(A2:B3,2,2) 返回单元格区域的第二行和第二列交叉处的值(梨)
=INDEX(A2:B3,2,1) 返回单元格区域的第二行和第一列交叉处的值(香蕉)

示例 2

如果您将示例复制到空白工作表中,可能会更易于理解该示例。

操作方法

创建空白工作簿或工作表。
请在“帮助”主题中选取示例。不要选取行或列标题。

从帮助中选取示例。

多列vlookup函数的使用方法按 Ctrl+C。
在工作表中,选中单元格 A1,再按 Ctrl+V。
若要在查看结果和查看返回结果的公式之间切换,请按 Ctrl+`(重音符),或在“工具”菜单上,指向“公式审核”,再单击“公式审核模式”。
 
1
2
3
A B
公式 说明(结果)
=INDEX({1,2;3,4},0,2) 返回数组常量中第一行、第二列的值 (2)
返回数组常量中第二行、第二列的值 (4)

注释  示例中的公式必须以数组公式的形式输入。在将示例复制到空白工作表中后,请选中以公式单元格开始的单元格区域 A2:A3,按 F2,再按 Ctrl+Shift+Enter。如果公式不是以数组公式的形式输入,则返回单个结果值 2。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。