我在两个不同的 Excel 文件中有两个工作表。它们都包含姓名、身份证号码和相关数据的列表。一个是包含一般人口统计字段的主列表,另一个是仅包含姓名和身份证以及地址的列表。另一个办公室从主列表中精简了此列表。
我想使用第二个列表来过滤第一个列表。此外,我希望结果包括主工作表中的其他字段以及第二个工作表中的地址字段。我知道如何使用数据库内连接非常轻松地做到这一点,但我不太清楚如何在 Excel 中有效地做到这一点。如何在 Excel 中连接两个工作表?展示如何进行外连接也是加分项,我非常希望知道如何在不需要宏的情况下做到这一点。
答案1
对于 2007+ 使用Data
> From Other Sources
> From Microsoft Query
:
- 选择
Excel File
你的第一个 excel - 选择列
(如果您没有看到任何列的列表,请务必检查Options
>System Tables
) - 转至
Data
>Connections
> [选择刚刚创建的连接] >Properties
>Definition
>Command text
您现在可以将其编辑Command text
为 SQL。不确定支持什么语法,但我尝试了隐式连接、“内连接”、“左连接”和联合,它们都有效。以下是示例查询:
SELECT *
FROM `C:\Users\Peter\Documents\Excel-to-excel\Source_1.xlsx`.`Sheet1$` a
LEFT JOIN `C:\Users\Peter\Documents\Excel-to-excel\Source_2.xlsx`.`Sheet1$` b
ON a.col2 = b.col2
答案2
支持已接受的答案。我只想强调“选择列(如果您没有看到任何列的列表,请确保检查选项 > 系统表)”
一旦你选择了 excel 文件,很可能你会看到this data source contains no visible tables
提示,可用的选项卡和列为零。Microsoft承认这是一个错误 excel 文件中的标签被视为“系统表”,默认情况下不选中“系统表”选项。所以这一步不要慌,你只需要点击“选项”,勾选“系统表”,然后你就会看到可用的列。
答案3
VLOOKUP 和 HLOOKUP 可用于搜索匹配的主键(垂直或水平存储)并从“属性”列/行返回值。
答案4
虽然我认为 Aprillion 使用 Microsoft Query 的答案非常好,但它启发了我使用微软访问加入数据表,我发现这容易得多。
当然,您需要安装 MS Access。
脚步:
- 创建一个新的 Access 数据库(或使用临时数据库)。
- 用于
Get External Data
将您的 Excel 数据导入为新表。 - 用来
Relationships
显示表格的连接方式。 - 设置关系类型以匹配您的需要(代表左连接等)
- 创建一个连接您的表的新查询。
- 用于
External Data->Export to Excel
生成您的结果。
如果没有 Aprillion 的精彩回答,我真的不可能做到这一点。