如何在Google Sheets中像SQL那样按ID合并两个表格?
合并两个表格生成ID、VALUE1、VALUE2的方法
原始表格内容
table1
ID VALUE 0 2 1 8 4 3
table2
ID VALUE 1 9 3 5 0 1
需求说明
需要合并上述两个表格,生成包含ID、VALUE1(对应table1的VALUE字段)、VALUE2(对应table2的VALUE字段)的结果表格,仅保留两个表格中都存在的ID,最终期望结果如下:
期望结果
ID VALUE1 VALUE2 0 2 1 1 8 9
Excel实现方案
你当前使用的公式逻辑有误,仅筛选了table1的行,无法实现目标效果。以下是正确的实现步骤:
- 提取共同ID:在空白单元格输入公式
=IF(COUNTIF(table2!$A$2:$A$4, table1!A2)>0, table1!A2, ""),下拉填充后去除空值,得到同时存在于两个表格的ID列表。 - 匹配对应VALUE值:
- VALUE1列(对应table1的VALUE):
=INDEX(table1!$B$2:$B$4, MATCH(A2, table1!$A$2:$A$4, 0))(A2为共同ID列的单元格) - VALUE2列(对应table2的VALUE):
=INDEX(table2!$B$2:$B$4, MATCH(A2, table2!$A$2:$A$4, 0))
- VALUE1列(对应table1的VALUE):
如果使用Excel 365及以上版本,可使用更简洁的XLOOKUP函数:
- VALUE1:
=XLOOKUP(A2, table1!$A$2:$A$4, table1!$B$2:$B$4, "") - VALUE2:
=XLOOKUP(A2, table2!$A$2:$A$4, table2!$B$2:$B$4, "")
SQL实现方案
正如你所说,SQL中通过内连接可直接实现需求:
SELECT table1.ID, table1.VALUE AS VALUE1, table2.VALUE AS VALUE2 FROM table1 INNER JOIN table2 ON table1.ID = table2.ID
内容的提问来源于stack exchange,提问作者Caio Rocha
相关产品推荐
相关产品推荐

