合并 2 个包含行和列更新的 Excel 电子表格

合并 2 个包含行和列更新的 Excel 电子表格

我有 2 个电子表格,需要合并并更新两者的数据组合。

电子表格A
用户 ID、姓名、电话 1、电话 2、城市
1,T先生,123 123,123 124,巴黎
2,先生A,,123 124,丹吉尔
3,B先生,123 153,,丹吉尔
5,D先生,213 123,123 435,伦敦

电子表格B
用户 ID、姓名、电话 1、电话 2
1,T先生,123 123,123 124
2,A先生,193 124,
3,B先生,123 154,123 153
4,C先生,123 183,183 184
6,Y先生,123 883,183 884


最终的合并应该是
用户 ID、姓名、电话 1、电话 2
1,mister T,123 123,123 124,巴黎 [无变化,两者相同]
2,先生 A,193 124,123 124,tanger [行已更新,合并两个电子表格]
3,mister B,123 153,123 153,tanger [由于 A 获胜,phone1 与 A 进行更新,缺失信息被合并]
[用户 ID 4 被删除,因为它在 A 中不存在]
5,先生 D,213 123,123 435,伦敦 [从 A 添加新行]

来自 B 的条目在 A 中不存在,应该被删除,事实上,A 被视为冲突的主宰者。

总而言之,这不是简单的复制粘贴,也不是常规的合并。有人能帮忙吗?

谢谢 !

附言:考虑一下,我理解 Access 可能更强大。因此,如果您能想到一个解决方案,我可以将这些 csv 导入到一个或多个数据库中,并使用正确的查询来合并它们,那么这对我来说也同样有效。

答案1

第一行“userid”是持久标识符吗?假设是的。名称改变而标识符保持不变的情况可能吗?假设是的。不同的人有可能获得相同的标识符吗?假设不是的。

因此,您不必合并两个电子表格中的人员,只需忽略电子表格 B 中不存在的人员即可。换句话说,您保留电子表格 A 中的人员列表,并且只有当他们也存在于电子表格 B 中时才更新他们的属性。

然后任务就变得非常简单了。生成的电子表格与电子表格 A 一一对应,您可以使用 VLOOKUP 在电子表格 B 中找到相应的条目,然后使用 IF 和 ISBLANK 更新值。

假设两个电子表格都包含 Sheet1 上的数据,保存到不同的文件中并在 Excel 中打开,并创建一个新的电子表格。

用与电子表格 A 相同的标题填充第一行。

然后输入以下公式:

单元格 A2:

='[Spreadsheet A.xlsx]Sheet1'!A2

单元格 B2:

=IF(ISBLANK('[Spreadsheet A.xlsx]Sheet1'!B2);VLOOKUP($A2;'[Spreadsheet B.xlsx]Sheet1'!$A:$E;COLUMN());'[Spreadsheet A.xlsx]Sheet1'!B2)

使用填充柄将 B2 公式复制到右侧的所有单元格。之后,选择第二行并使用填充柄将结果公式复制到下面的后续行。超过电子表格 A 中条目数的行将用 #N/A 填充。如果您愿意,可以添加另一个 IF 以将错误替换为空白。

相关内容