我有一个包含两个工作表的电子表格。第一个工作表(源数据)包含一个包含 3 列的表:
我想在第二个工作表(电子邮件)上显示该表的两个第一列,因此我使用公式来引用源表的特定列:
如果它也是一个表格,那就太好了,这样我就可以对数据进行排序/过滤。
但是,它会导致奇怪的问题。例如,如果我在源数据工作表上重新处理数据,在其间插入新行,或从中间删除一行(如下面的屏幕截图所示),第二个工作表中断,第三列的值 ( [email protected]
)出现错误记录 ( Kate Ostin
):
将第二个表(电子邮件)转换为范围没有帮助。
有哪些可能的解决方案?基本上,我需要在第二个工作表上包含引用(名字、姓氏)的前两列和所有其他列(电子邮件)之间建立牢固的关系。请帮助如何实现它。谢谢。
假设:
要求:
源工作表上的排序、删除或插入也应该对关联的电子邮件执行相同的操作
坏消息:
如果没有一些复杂的 VBA 宏代码,就没有办法实现如此强的关系。您正在尝试使用单元格引用链接两个单独的工作表/数据库,但是任何一个工作表中都没有硬编码的唯一 ID,可用于在另一个工作表中找到一个。行号不是唯一的,因为它会根据插入/删除/排序命令而改变。
解决方案1:
保留一张包含所有源数据的表格,包括电子邮件列。使用“新窗口”或克隆工作表来创建相同数据的单独视图。
解决方案2:
如果需要,维护两个单独的工作表/数据库。为每一行创建一个唯一的 ID,例如在源工作表中 NameSurnameDate = JohnDoe20220328,或者如果不太可能出现重复名称,则只需 NameSurname。“电子邮件”表将在一列中包含电子邮件列表,并将唯一 ID 作为文本(非参考)。您可以使用 VLOOKUP 从源表中提取全名和姓氏。手动同步两者,或编写 VBA 代码进行同步(在“Source”中搜索新的唯一 ID 并复制到“Emails”,在“Emails”中搜索唯一 ID 并删除,然后按字母顺序排序)。