我有 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 以将错误替换为空白。