在Microsoft Excel中合并两个或多个单元格名称9种方法

在Microsoft Excel中合并两个或多个单元格名称9种方法

根据两列的连接添加新列是数据分析的基本任务。在数据输入表单中,大多数情况下开发人员会保留两个字段,即名字和姓氏,而不是全名。

它有助于避免混淆,更容易找到,并且对于进一步的数据分析非常有用。

假设您正在创建一份需要显示客户姓名的报告。您必须将两个姓名合并并显示为全名,而不是将它们分开显示。

有几种不同的方法可以将两个不同单元格中的数据合并到一个单元格中。在这篇文章中,您将了解在 Excel 中合并两个或多个单元格中的名称的所有不同方法。

您可以使用Ampersand运算符和内置函数CONCATENATECONCATTEXTJOINFLASH FILL来合并名称。此外,Power QueryPower Pivot可以合并您的名称。如果您想在自动化中合并名称,您可以使用VBAOffice 脚本

获取本文中使用的示例工作簿的副本以便继续操作!

推荐:Microsoft Excel中计算反余弦的5种方法

使用 & 符号运算符组合名称

在 Excel 中,可以使用& 运算符&将两个或多个文本字符串合并在一起。因此,您可以使用它来连接您的名字和姓氏。

在Microsoft Excel中合并两个或多个单元格名称9种方法

假设您的名字和姓氏分别在范围B3:B12C3:C12中。

= B3 & " " & C3

您可以使用上述公式在单元格D3中将它们连接起来,然后拖动填充柄将公式应用于单元格区域D3:D12

在上例中,这在名字和姓氏之间添加了一个空格。如果您愿意,可以添加任何其他字符或分隔符,例如逗号。

使用 CONCATENATE 函数合并名称

您可以使用简单的CONCATENATE公式将两个或多个单元格中的数据合并到一个单元格中。如果您需要创建全名,这很有用。

CONCATENATE ( text1, [text2], ... )

CONCATENATE函数采用一个或多个text值并将它们组合在一个值中。

 注意CONCATENATE函数只能将单元格引用作为参数,并且不会合并范围引用中的所有文本。这意味着您必须单独引用每个单元格。

= CONCATENATE ( B3, " ", C3 )

上述公式将合并单元格B3C3中的数据以及它们之间的空格字符。

 注意:您需要在名称之间指定空格字符,因为CONCATENATE函数将按照参数出现的顺序组合它们。

使用 CONCAT 函数合并名称

CONCAT函数允许您将多个范围的文本合并到一个单元格中。

当多个相邻的单元格中都有数据,并且您想要将它们合并到一个单元格中以用于公式或显示目的时,此功能非常有用。

CONCAT ( text1, [text2], … )

CONCAT函数接受多个单元格区域text而不需要单独选择每个单元格。

下面的示例显示如何使用CONCAT函数组合名字和姓氏。

= CONCAT ( B3:D3 )

CONCAT函数 将合并您指定的单元格范围中的数据,并在您选择的单元格中显示合并后的数据。

请注意,您在上例中的C 列中添加了一个空格。否则,Excel 会将名称合并为一个名称。

 注意:您必须在名字和姓氏列之间的列中添加一个空格。否则,Excel 会将姓名合并为一个文本,而不会用空格将它们分开。

推荐:Email自动化营销插件Mail Mint Pro

使用 TEXTJOIN 函数合并姓名

TEXTJOIN函数允许您将多个单元格中的文本合并到单个单元格中,并在文本之间使用分隔符。

这将允许您用空格连接名称,而无需添加包含空格字符的额外列。

您还可以选择忽略空单元格。这样,任何缺少名字或姓氏的数据都不会创建带有尾随或前导空格的名称。

TEXTJOIN ( delimiter, ignore_empty, text1, [text2], … )
  • delimiter是用于分隔每个连接文本值的字符或字符集。
  • ignore_empty允许您在连接文本时忽略任何空单元格。
  • text是要合并的单元格范围。
= TEXTJOIN ( " ", TRUE, B3:C3 )

上述公式将连接范围B3:C3中的名称,并在它们之间放置一个空格字符。

此函数中的第一个参数是delimiter。它将分隔每个单元格中的文本,因此这里使用了一个空格字符。

TRUE值用于忽略任何潜在的空单元格。在这种情况下,名称数据中没有空单元格,因此此参数不起作用。

使用快速填充功能合并姓名

Excel快速填充是一项功能,可让您根据输入的示例快速填充数据。

您提供一些您想要在相邻行中获得的结果的示例,然后 Flash Fill 将确定模式并填充其余部分。

假设您有一个名字和姓氏列表,您可以使用 Flash Fill 快速生成全名列表。

在相应名字和姓氏右侧的单元格中输入示例全名。

这应该会触发 “快速填充”  ,您将看到浅灰色的建议结果。按 Enter 接受这些结果并将其放入单元格中。

如果  在前几次输入后Flash Fill没有自动触发,那么您可能需要手动触发它。

按照以下步骤手动触发“Flash Fill”

  1. 选择示例全名下方的第一个空单元格。
  2. 转到 “数据” 选项卡。
  3. 单击 数据工具部分 中的 “Flash Fill”命令图标 。

 提示:您还可以使用Ctrl+E键盘快捷键来触发快速填充。

使用 Power Query 合并姓名

Excel Power Query是一种工具,允许用户轻松地从各种来源(例如数据库、网页和文本文件)提取和转换数据。

它还可用于在将数据加载到 Excel 之前对其进行转换和清理。

这可用于在 Excel 中合并名称。

您首先需要将您的姓名数据添加到 Excel 表中。

假设您在 Excel 表中有名字和姓氏的数据,那么您可以按照以下步骤使用 Power Query 将姓名合并到单个列中。

  1. 选择您的 Excel 表格。
  2. 转到“数据”选项卡。
  3. 选择来自表/范围选项。

这将打开 Power Query 编辑器窗口。

现在您可以在Power Query 编辑器中看到您的 Excel 数据表

  1. 选择两列。
  2. 右键单击列标题。
  3. 从菜单中选择合并列。

这将打开合并列对话框。   

  1. 分隔符下拉菜单中选择空格选项。您可以从下拉菜单中选择其他选项,也可以添加自己的自定义分隔符。
  2. 在新列名(可选)输入框中输入新列名 。例如,FullName
  3. 按下“OK”按钮。

您可以看到名字和姓氏在名为FullName的新列中以空格组合在一起。

  1. 按下“主页”选项卡中的“关闭”和“加载”

Excel 将关闭 Power Query 编辑器并打开“导入数据”对话框。

  1. 选择 现有工作表,如果您需要在新工作表中导入数据,则可以选择新工作表选项。
  2. 选择任意单元格,例如E2
  3. 按下“OK”按钮。

组合后的名称现在将出现在 Excel 的输出列中。

推荐:怎么确定设备Excel应用程序版本

使用 Power Pivot 合并姓名

Excel Power Pivot是一个数据分析工具,允许用户在 Excel 中操作大型数据集。

Power Pivot 允许用户根据存储在多个表中的数据创建数据透视表和图表。

将数据集加载到 Power Pivot 数据模型后,您可以使用DAX公式语言添加更多带有计算的列。

DAX公式语言与 Excel 有很多共同的功能,在这种情况下,您可以使用简单的与号运算&符来组合名称。

假设您在 Excel 表B2:C12中有数据,并且需要将数据添加到数据模型中。

选择表格中包含您的名字和姓氏的单元格,然后转到 Power Pivot 选项卡,然后单击 “添加到数据模型” 选项。

 注意:如果您在 Excel 中没有看到 Power Pivot 选项卡,则可能需要先启用 Power Pivot 插件

这将打开 Power Pivot 编辑器并将表加载到模型中。

您可以通过单击  数据右侧的“添加列”标题来添加新列。

= [First] & "  " & [Last]

上述公式将给出整个列的组合名称。

现在您将能够在数据透视表中使用这些计算列。

转到 Power Pivot插件 的 “主页”选项卡 ,单击 “数据透视表”命令,然后 从菜单中 选择 “数据透视表”选项。

这将打开“创建数据透视表”对话框。选择“新建工作表”“退出工作表”。输入需要添加数据透视表的单元格位置,然后按“确定”按钮。

您可以看到空数据透视表已添加到 Excel 中,并且计算列FullName已显示在 数据透视表字段列表中。将其添加到数据透视表行区域后,您将看到一列中合并的全名列表。

使用 VBA 合并名称

Excel VBA是一种编程语言,可让您使用代码控制 Excel。

您可以使用VBA编写宏、创建用户表单和控件以及自动执行大多数流程。VBA内置于 Excel 中,您可以使用 Visual Basic 编辑器访问它。

您可以向工作簿添加一个宏,将名称合并到相邻的列中。

可以 通过将宏添加到快速访问工具栏来运行它 ,以便始终只需单击即可使用。

访问 VBA 编辑器并添加代码

转到 “开发人员” 选项卡并单击 “Visual Basic” 命令。

您可以查看此文章,了解有关 在功能区中启用“开发人员”选项卡的详细信息。或者,您可以按 Alt  +  F11打开不带“开发人员”选项卡的 Visual Basic 编辑器  。

这将打开 Visual Basic 编辑器。现在您可以在编辑器中创建一个新模块来添加代码。

转到  Visual Basic 编辑器的 “插入”菜单,然后选择“模块” 选项。它将向您的“模块”文件夹添加一个新模块

Sub CombineNames()
Dim rng As Range
Dim arrNames() As Variant
Dim colCount As Long
Dim rowCount As Long

Set rng = Selection
rowCount = rng.Rows.Count
colCount = rng.Columns.Count
ReDim arrNames(colCount)

If colCount 

在 Visual Basic 编辑器中将上述代码添加到您的模块中。

此代码首先检查您是否选择了包含多列的区域。如果您只选择了一列,它将警告您至少选择两列,然后停止执行。

当选择两列或更多列时,代码将循环遍历选定的范围并将每个单元格与空格字符组合。

它将名字姓氏存储在一个数组对象中,用空格字符连接数组元素,然后将数据直接输入到原始选择右侧的单元格中。arrNames

选择您的姓名并运行代码后,您将在 Excel 中获得组合的全名

将姓名与 Office 脚本相结合

Microsoft Excel Office Scripts 允许用户在线在 Excel 中录制宏并将其保存为 Office 脚本。这些脚本可以在在线 Excel 中运行,以自动执行您的任务。

转到 “自动化” 选项卡,然后单击 “新建脚本” 命令以打开  Office 脚本的代码编辑器

function main(workbook: ExcelScript.Workbook) {

    //getselected range
    let rng = workbook.getSelectedRange();
    let rows = rng.getRowCount();
    let cols = rng.getColumnCount();

    if (cols 

将上述代码添加到 代码编辑器 并按 保存 按钮。

现在,您可以在 Excel 表中选择至少两列名称,从Office 脚本下拉项 中选择脚本CombineNames ,然后按代码编辑器 中的运行按钮。

代码将检查您的选择,以确保您至少选择了两列。否则,代码将停止运行。否则,代码将继续并循环遍历您选择的单元格并合并您选择的每行中的名称。

结论

如果您有两个单独的姓名字段用于记录姓和名,您可能需要将两个姓名合并到一个字段中,并在两个姓名之间添加一个空格。幸运的是,有很多方法可以做到这一点。

公式解决方案是最具活力的,更适合在将名称添加或更新到原始数据集时使用。

Flash Fill只需几个简单的步骤即可完成工作,适合一次性操作。

Power QueryPower Pivot方法适用于更大的数据集或外部数据集。

如果您需要将此步骤添加到自动化中,则可以使用VBAOffice 脚本方法来组合名称。

推荐:在Linux Debian 12/11 上安装Vanilla TeX Live


发表评论