EXCEL两个表如何通过关联合并
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EXCEL两个表如何通过关联合并相关的知识,希望对你有一定的参考价值。
EXCEL表A
字段A 字段B 字段C
1 0001 BBC
2 0002 BBD
5 0001 BBD
EXCEL表B
字段A 字段D 字段E
1 100 A01
3 200 A02
4 300 A03
即两个表是通过字段A作为关联,将相同的数据进行合并成一行完整的数据。
需要得到的结果
字段A 字段B 字段C 字段D 字段E
1 0001 BBC 100 A01
请问如何实现?
表A的D1输入
=VLOOKUP(A1,Sheet2!A:C,2,0)
E1输入
=VLOOKUP(A1,Sheet2!A:C,3,0)
向下复制公式即可
Sheet2是表B
这个公式我怎么理解?
方法和详细的操作步骤如下:
1、第一步,打开要调整的两个表,关闭其他表,然后仅保留两个表,见下图,转到下面的步骤。
2、第二步,执行完上面的操作之后,单击需要移动的表格,然后查看下面的标签,见下图,转到下面的步骤。
3、第三步,执行完上面的操作之后,可以看到有多个表,按住Shift键以选择所有表,或右键单击以选择“选定全部工作表”选项,见下图,转到下面的步骤。
4、第四步,执行完上面的操作之后,再次右键单击并选择“移动或复制工作表”选项,见下图,转到下面的步骤。
5、第五步,执行完上面的操作之后,单击下拉框,将选定的工作表移至其中,见下图,转到下面的步骤。
6、第六步,执行完上面的操作之后,在下拉框中选择另一个表单,单击“移至最后”选项,然后单击“确定”按钮,见下图,转到下面的步骤。
7、第七步,完成上述步骤后,将在另一个表中看到所有表都移到现有表的后面,见下图。这样,就解决了这个问题了。
参考技术A方法:
首先打开2个excel表格(如图一、图二),会发现这两个excel表格的A列是相同类型的,,不同的是表格1有经验数量和财富值,而表格2有的是最近拿好经验红包的数量,现在就是需要把2个excel合并成一个表格。
图一
图二
现在表格1的D列写上需要导入数据的列标题,或者直接从表格2中复制-粘贴过来也行。(如下图)
然后将鼠标移动到D列的第二行,打开菜单栏的”公式“选项,在公式的工具中找到”插入函数“并点击。(如下图)
在插入函数窗口页面,在搜索函数框中输入”vlookup"然后转到,在出现的结果函数中,点击vlookup函数,然后点确定。(如下图)
弹出来的函数参数中,在第一个填写框vlookup_value中直接点击A2的”张一”。(如下图)
在第二个填写框Table_array中全选表格2,表格2中A列和B列都包含了。(如下图)
在第三个填写框col_index_num 中直接填写2,表示选择第2列的数据,然后第四个填写框Range_lookup中填写0,表示大致匹配,然后填写完毕之后点击确定。(如下图)
这时D列的D2显示5,表示张一拿到5红包,因为刚才的函数公式是跟张一对应的,所以出现了张一的数据,如果想要其他人的数据时,可以把鼠标放到D2选项框的右下角,等到出现一个“+”号时,双击鼠标左键。(如下图
这时候所有的数据都出来了,成功将表格2的数据导入表格1,合并成一个表格数据。(如下图)
备注:将2个excel表格的数据合并成一个表格,需要两个表格中有相同列的数据。
参考技术B 表A的D1输入=VLOOKUP(A1,Sheet2!A:C,2,0)
E1输入
=VLOOKUP(A1,Sheet2!A:C,3,0)
向下复制公式即可
Sheet2是表B
VLOOKUP:
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。
在 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。本回答被提问者采纳 参考技术C 具体实现方式:
表A的D1输入
=VLOOKUP(A1,Sheet2!A:C,2,0)
E1输入
=VLOOKUP(A1,Sheet2!A:C,3,0)
向下复制公式即可。
Sheet2是表B
VLOOKUP:
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。
在 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。 参考技术D 问题补充:表A的D1输入
=VLOOKUP(A1,Sheet2!A:C,2,0)
E1输入
=VLOOKUP(A1,Sheet2!A:C,3,0)
------------
该函数表达如下:在A表的D1中显示的是:在sheet2中的A:C区域,查找与表BA1单元格相同的内容,如果找到,则在该单元格显示sheet2中A:C中有该记录的行和sheet2中第2列交叉处单元格的值。(最后的0表示完全匹配)
将联合 SQL 视图加载到访问表中
【中文标题】将联合 SQL 视图加载到访问表中【英文标题】:Loading a Union SQL View into access table 【发布时间】:2014-05-01 08:23:47 【问题描述】:我正在尝试创建一个从联合 SQL 视图加载数据的访问表(带有主键)。
我希望有办法实现这一点?我尝试了追加并创建复制数据但仍然没有主键的表查询。
我已经创建了一个包含我想要的字段的空白表,但想不出如何将视图中的字段导入其中?
将视图加载到 excel 中更好吗?
任何提示都会很棒!
谢谢
【问题讨论】:
嗨,视图是否有来自多个表的数据?您是否打算更新数据?如果您不打算编辑数据,请查看为什么不简单地将视图用作表格,而不是创建一个新表格。 您好,是的,它有多个表。没有其他来源更新表格。我尝试将视图用作表格,但无法定义主键,并且所有字段都设置为短文本。 酷,所以在您看来使用 NewID() 函数。这是一个链接:msdn.microsoft.com/en-us/library/ms190348.aspx NewId 将为您创建一个 rowID。 听起来很完美,我必须将它添加到工会的每一行吗? SELECT PLSupplierAccountID AS SageAccountID, SupplierAccountNumber AS AccountNumber, SupplierAccountName AS AccountName, 'RWL' AS Company FROM Roth.dbo.PLSupplierAccount UNION ALL SELECT PLSupplierAccountID AS SageAccountID, SupplierAccountNumber AS AccountNumber, SupplierAccountName AS AccountName, 'FAH' AS Company FROM FAH.dbo.PLSupplierAccount UNION ALL SELECT PLSupplierAccountID AS SageAccountID, SupplierAccountNumber AS AccountNumber, SupplierAccountName AS AccountName, 'RFG' AS 【参考方案1】:我假设您正在尝试将此查询转换为表格,因为该查询需要很长时间才能运行并且数据不会经常更改。在这种情况下,这很好。否则你真的应该使用你的查询。如果 PK 是个问题(这不应该是因为您无法编辑联合查询),那么您应该详细说明您正在尝试做什么。
无论如何,要将查询转换为表,您需要使用查询中的列创建一个表,并再添加一个列,即AutoNumber
列。这是你的PK。然后像往常一样创建附加查询。不要在AutoNumber
列上附加任何内容,添加新行时它会自动填充。
【讨论】:
以上是关于EXCEL两个表如何通过关联合并的主要内容,如果未能解决你的问题,请参考以下文章