拉开单元格(Microsoft Excel)
以前可能发生过这种情况:您获取工作表的数据,其中一列包含名称。唯一的问题是,所有名称都聚集在一起。例如,单元格包含“ Allen Wyatt”,
但是您宁愿在一个列中使用名字,而在相邻列中使用姓氏。您如何将名称分开?
您可以轻松使用Excel中的“文本到列”功能将数据分开。只需执行以下步骤:
。选择要拆分的单元格范围。
。从“数据”菜单中选择“文本到列”。 Excel启动“将文本转换为列”向导。 (请参见图1。)
。选择您选择的文本是固定宽度还是定界。
(在名字和姓氏之间有空格的情况下,文本将被定界。)
。单击下一步。
。指定您要Excel识别的定界符。如果将名称分开,则应确保使用空格作为分隔符。
。单击完成。
Excel将选定范围内的单元格分开,并在指定的分隔符处分隔所有文本。 Excel使用但是需要许多列来保存数据。
如果您不想将数据完全分布在各列中,则需要使用宏。例如,如果一个单元格包含“ John Davis,Esq。”,则使用“文本到列”功能将导致数据被分为三列:第一列包含“ John”,第二列包含“ Davis”,(带有逗号),第三个包含“ Esq”。如果您希望将数据分为两列(一列为“ John”,另一列为“ Davis,Esq。”),则以下宏将很有帮助:
Sub PullApart() Dim FirstCol As Integer, FirstRow As Integer Dim RowCount As Integer Dim ThisRow As Integer Dim j As Integer, k As Integer Dim MyText As String FirstCol = ActiveWindow.RangeSelection.Column FirstRow = ActiveWindow.RangeSelection.Row RowCount = ActiveWindow.Selection.Rows.Count For j = 1 To RowCount ThisRow = FirstRow + j - 1 MyText = Cells(ThisRow, FirstCol).Text k = InStr(MyText, " ") If k > 0 Then Cells(ThisRow, FirstCol + 1).Value = Mid(MyText, k + 1) Cells(ThisRow, FirstCol).Value = Left(MyText, k - 1) End If Next j End Sub
||||此宏检查每个单元格,并将所有内容保留到所选单元格的第一个空格,然后将所有空格之后的内容移到右侧的列中。此宏唯一的“陷阱”是确保您
_ _注意:
|如果您想知道如何使用在此描述的宏,则在该列的右侧没有任何内容。页面(或_ExcelTips_网站上的任何其他页面)上,我准备了一个包含有用信息的特殊页面。
link:/ excelribbon-ExcelTipsMacros [单击此处可在新的浏览器选项卡中打开该特殊页面。 ]
。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
此技巧(2967)适用于麦克风rosoft Excel 97、2000、2002和2003。可以在Excel的功能区界面(Excel 2007和更高版本)中找到此技巧的版本: