根据列中的匹配数据合并两个 Excel 表
Posted
技术标签:
【中文标题】根据列中的匹配数据合并两个 Excel 表【英文标题】:Merge two Excel tables Based on matching data in Columns 【发布时间】:2014-10-28 17:37:47 【问题描述】:我一直在研究一个excel问题,我需要找到答案,我会在下面解释。
我有 Table01 的列:
组号 姓名 价格我有 Table02 的列:
组号 城市 代码我已经合并了两个 Table01 和 Table02 的表,如 Image03 所示,但没有顺序。
但是,如您所见,两个表中的 Group No Column 是相似的。
我需要的是考虑到“组号”列来获取 Table01 和 02 的匹配行。
最终结果将被视为最终图像。
有没有办法用excel函数做到这一点?
谢谢!
【问题讨论】:
将两者都转换成表格并使用匹配和索引函数。 【参考方案1】:将表格放在 Sheet2 的第二张图片中,D 到 F 列。
在Sheet1中,单元格D2使用公式
=iferror(vlookup($A2,Sheet2!$D$1:$F$100,column(A1),false),"")
上下复制。
编辑:这是一张图片。数据在两张纸上。在 Sheet1 上,将公式输入到单元格 D2 中。然后将公式复制到 F2,然后根据需要向下复制任意数量的行。
【讨论】:
谢谢你的回答,但你能解释一下吗@teylyn 我应该把这个函数写到哪个单元格@teylyn 有趣。 OP 接受答案一年后投反对票。需要详细说明吗? 如果您的行数大于 100,则相应地更改值 100。 这只是为了帮助人们如何可能遇到类似的情况。【参考方案2】:Teylyn 的回答对我来说很有效,但我必须对其进行一些修改才能获得正确的结果。我想为需要它的人提供一个扩展的解释。
我的设置如下:
Sheet1:2014年完整数据 Sheet2:在 A1:D50 中更新了 2015 年的行, 按第一列排序 Sheet3:合并行 我的数据没有标题行我在 Sheet3 的 A1 单元格中输入了以下公式:
=iferror(vlookup(Sheet1!A$1;Sheet2!$A$1:$D$50;column(A1);false);Sheet1!A1)
阅读如下:取 Sheet1 中第一列的值(旧数据)。在 Sheet2 中查找(更新的行)。如果存在,则从 Sheet2 中指示的列中输出值。出错时,输出 Sheet1 当前列的值。
注意事项:
在我的公式版本中,“;”用作参数分隔符而不是“,”。那是因为我位于欧洲,我们使用“,”作为小数分隔符。改变 ”;”回到“,”,如果你生活在“。”的国家。是小数点分隔符。
A$1:表示在将公式复制到不同列中的单元格时始终采用第 1 列。 $A$1 的意思是:始终采用精确的单元格 A1,即使将公式复制到不同的行或列。
将公式粘贴到 A1 中后,我将范围扩展到 B、C 等列,直到达到表格的整个宽度。由于使用了 $ 符号,这在单元格 B1、C1 等中给出了以下公式:
=IFERROR(VLOOKUP('Sheet1'!$A1;'Sheet2'!$A$1:$D$50;COLUMN(B1);FALSE);'Sheet1'!B1)
=IFERROR(VLOOKUP('Sheet1'!$A1;'Sheet2'!$A$1:$D$50;COLUMN(C1);FALSE);'Sheet1'!C1)
等等。请注意,查找仍然在第一列中完成。这是因为 VLOOKUP 需要在完成查找的列上对查找数据进行排序。然而,输出列是粘贴公式的列。
接下来,在 Sheet 3 中选择一个矩形,从 A1 开始,并具有 Sheet1 中数据的大小(行数和列数相同)。按 Ctrl-D 将第一行的公式复制到所有选定的单元格。
单元格 A2、A3 等会得到这些公式:
=IFERROR(VLOOKUP('Sheet1'!$A2;'Sheet2'!$A$1:$D$50;COLUMN(A2);FALSE);'Sheet1'!A2)
=IFERROR(VLOOKUP('Sheet1'!$A3;'Sheet2'!$A$1:$D$50;COLUMN(A3);FALSE);'Sheet1'!A3)
因为使用了$-signs,所以查找区域是不变的,但是输入数据是从当前行开始的。
【讨论】:
以上是关于根据列中的匹配数据合并两个 Excel 表的主要内容,如果未能解决你的问题,请参考以下文章