查找电子邮件地址并将其从一列移动到另一列

查找电子邮件地址并将其从一列移动到另一列

我有一个客户列表,其中包含姓名、地址、城市、州、邮政编码,但有些客户随机使用电子邮件地址而不是街道地址。

我需要将电子邮件地址从地址列移到同一工作表上的单独列中,但仍与同一客户记录相关联。

唯一不变的是电子邮件地址中的“@”。有没有办法做到这一点,而不用逐一检查每个客户记录并逐一移动它们?

编辑:

以下是数据示例:

显示示例数据的屏幕截图

我如何仅识别电子邮件地址并将其移动到 I 列?

答案1

这实际上非常简单。

步骤1

使用以下方法之一打开自动过滤:

  • DataSort & FilterFilter
  • Alt+(AT
  • Ctrl+ Shift+L

显示“自动筛选”已打开的工作表屏幕截图

第2步

使用通过向下控制箭头创建的自定义文本过滤器来过滤Address Line 1列:contains @

显示正在设置自定义过滤器的工作表屏幕截图

步骤3

选择包含电子邮件地址的列的过滤单元格Address Line 1(最简单的方法是选择最顶部的单元格并按Ctrl+ Shift+ Down),扩展选择以包含其他地址列和电子邮件列(Shift+( Right; Right; Right) ),然后使用以下方法之一填充:

  • HomeEditingFillRight
  • Alt+ (H;;;)​FIR
  • Ctrl+R

工作表屏幕截图,显示右侧填写的电子邮件地址

步骤4

将选择减少一列 ( Shift+ Left),然后按Delete清除所有地址列:

显示已清除地址列的工作表屏幕截图

步骤5

最后,以与打开自动过滤相同的方式关闭它,例如Alt+( A; T):

显示最终结果的工作表屏幕截图

答案2

希望我理解正确。目前所有这些信息都只存储在 1 列中吗?有点像这样? 示例 1

如果是这样,你可以使用数据 > 文本分列将它们拆分成单独的列。在我的示例中,我使用“逗号”作为“分隔符”(例子)但它可以处理空格等,具体取决于您的数据。

完成向导后,输出可能如下所示。 输出

答案3

如果您使用的是 Excel 2016 或更高版本,那么您可以使用以下公式:

=TEXTJOIN(", ", TRUE, IF(ISERROR(SEARCH("@", A2:A6)), "", A2:A6))

如果使用的版本低于 2016,则可以使用此数组公式:

{=IFERROR(INDEX(A2:A6, 1, MIN(IF(ISERROR(SEARCH("@", A2:A6)), "", MATCH(ROW(A2:A6),ROW(A2:A6))))),"")}

笔记:

  • 用 完成此公式Ctrl+Shift+Enter
  • 根据需要调整公式中的单元格引用。

相关内容