我有一个 Excel 工作表,其中有两列,一列是姓名,另一列有一个或多个电子邮件,各列之间用逗号分隔。
现在,我想要获得两列具有重复名称但唯一电子邮件的列,因此单个单元格中不超过一个电子邮件地址,我只希望第一列有一个名称,第二列有一个电子邮件。
现在是这样的:
name1 email1, email2, email3
name2 email1
name3 email1, email2
我想要的是这样的:
name1 email1
name1 email2
name1 email3
name2 email1
name3 email1
name3 email2
谢谢
答案1
您似乎正在“取消透视”数据透视表。以下是基于 John Walkenbach 的非常酷的提示的另一种方法: 根据摘要表创建数据库表。 我一直使用这个技巧,它确实节省时间。
如果您使用的是 Excel 2007 或更高版本,我强烈建议您将数据透视表按钮添加到快速访问工具栏。这将允许您访问“旧”Excel 2003 数据透视表向导。能够使用“旧”向导非常重要!调出旧数据透视表向导的另一种方法是键入“ALT+D”,然后键入“P”。
现在,谈谈您的具体问题。使用“数据”菜单的“文本到列”功能以逗号分隔第二列数据。您还必须添加一些列标题。(我重建了您的示例数据以显示唯一的电子邮件地址,以便更清晰地显示):
单击快速访问工具栏上的“数据透视表”按钮。它将调出旧向导的第 1 步。选择“多个合并范围”按钮,然后单击“下一步”:
在步骤2a中,选择“我将创建页面字段”,然后单击“下一步”:
在步骤 2b 中,突出显示您的数据范围,然后单击“添加”按钮。这会将您的数据范围复制到表单的下方窗口中。单击“下一步”。
在第 3 步中,您可以选择“新工作表”或“现有工作表”,只要您选择的单元格不与源数据重叠即可。单击“完成”。
您现在应该有一个数据透视表,并且将显示数据透视表字段列表:
取消选中“行”框和“列”框,这样您将在单个单元格中留下一个非常小的透视表(此处显示在单元格 A4 中):
这是最酷的部分:双击该单元格。您的数据透视表将被“取消透视”到新工作表上。现在您可以过滤掉第三列中的空白,然后您将获得所需的布局:
答案2
就我个人而言,我会做以下事情:
- 按 A 列对工作表进行排序
- 将整个列表复制到文本编辑器
- 搜索并将“[逗号][空格]”替换为“[换行符][制表符]”
- 将所有内容复制回 Excel
这是我刚刚学到的一个技巧:
- 单击数据中的某处
- Ctrl-A(或手动选择数据)
- Ctrl-G
- Alt-S
- 按 K 然后输入
您刚刚选择了所有空白单元格
- 按等号键
- 按键盘上的向上箭头
- Ctrl-Enter
这将确保空白单元格具有上方单元格的值(这在复制数据透视表时特别有用)
- 将所有内容再次复制到文本文档中
- 将其复制回 Excel
这确保单元格不再使用公式。
如果这是您需要定期做的事情,我建议使用 Awk。