将两个电子表格joinExcel或OpenOffice的公共列中

我有两个CSV文件与一个共同的列,我想要“join”共同列上的表。

例如:join“A”与“B”等于“结果”。 如果一个表的键值在另一个表中不存在,则只剩下空白。

== Table A == == Table B == == Table result == Name ,Age Name ,Sex Name ,Age ,Sex Bob ,37 + Bob ,Male => Bob ,37 ,Male Steve ,12 Steve ,Male Steve,12 ,Male Kate , 7 Kate , 7 , Sara ,Female Sara , ,Female 

我知道如何用SQL数据库做到这一点,但我从来没有用“Excel”或“OpenOffice.org Calc”

build议?

在Excel中, vlookup可以完成你所要求的部分function。 具体来说,你可以使用vlookup来做一个左或者右的外连接,但是不能使用一个完整的外连接(比如你的表结果)。

为你的例子做一个外连接,将以下内容添加到“表B”的C2(或复制“表B”,然后执行此操作):

 =vlookup( a2, # the cell value from the current table to look up in the other table table_a!$1:$174832718, # the other table # don't manually type this--select the entire # other table while the cursor is editing this # cell, then add the "$"s--Excel doesn't # automatically add them # (the syntax here is for different sheets in # the same file, but Excel will fill this in # correctly for different files as well) 2, # the column to get from the other table (A=1, B=2, etc.) FALSE) # FALSE=only get exact matches TRUE=find approx. matches if no exact match 

您应该可以将其展开以处理多行和多个导入的列。

在Excel中,您使用VLOOKUP
假设您具有Excel中列A和B列出的表A中的数据。
表B中的数据列在E和F列中。
现在,转到C列的第一行并input:

 =VLOOKUP(A:A,E:F,2,FALSE) 

这告诉它尝试将列A与列E相匹配,并抓住第二列中我们find的地方附近的任何东西,并将它放在列C中。
现在自动填充C列中的其余行,以匹配其余的数据。

如果您可以使用Excel,则有一个来自Excel文件的查询function:

  • 为主表定义名称 – 表A(公式选项卡 – >定义名称)
  • 为辅助表定义名称 – 表B
  • 转到数据选项卡,select“从其他来源”,并从下拉列表中select“从Microsoft Query”
  • select您的CSV文件,并确认您要手动合并列
  • 在下面的窗口“从Excel文件查询”中,将表A的名称列拖放到表B的名称列中 – 这些列之间的链接将被创build
  • 进入文件菜单,单击“返回数据到MS Office Excel”,将popup一个导入数据对话框
  • select您希望导入匹配数据的工作表
  • 点击确定 – 你应该看到两个表中的列匹配的数据

或者,如果您不介意将CSVfile upload到在线服务,则可以使用例如http://www.exmerg.com/data-merging并使用拖放操作来join电子表格(免责声明:我是该工具的作者) 。

希望这可以帮助。