如何将列中的某些数据移动到新列

如何将列中的某些数据移动到新列

我正在寻找一个公式来将数据拆分成新列。我可以简单地做到这一点,但我想对其进行分类。

即我有一列包含每个人的学位信息,例如:

BS 1990; MS 1991; PHD 1992;
Next record:
BS 1999; PHD 2000

每个人的数据都不同,学位也不同。我想将所有学士学位移到一个新列,将所有硕士学位移到另一个新列,将所有博士学位移到另一个新列。我可以将数据拆分到新列中,但不能拆分到正确的列中,因为每行的数据都不同。

谢谢。

答案1

包含列中的数据A, 在B1进入:

=IF(ISERROR(FIND("BS",A1)),"",MID(A1,FIND("BS",A1),7))

并抄下来。在C1进入:

=IF(ISERROR(FIND("MS",A1)),"",MID(A1,FIND("MS",A1),7))

并抄下来。在D1进入:

=IF(ISERROR(FIND("PHD",A1)),"",MID(A1,FIND("PHD",A1),8))

并抄下来:

在此处输入图片描述

答案2

假设

  • 可以接受 VBA,
  • Office 2000 或更高版本(用于拆分功能。如果您使用的是 2003 之前的版本,请告诉我,以便我仔细检查。)
  • 您的格式是一致的,带有分号分隔符。

然后添加以下代码:

Function XLstrtok2(sStr As String, sDesiredDegree As String)
    Dim ss() As String, i As Integer
    sStr = Trim(sStr)
    If Right(sStr, 1) = ";" Then sStr = Left(sStr, Len(sStr) - 1)
    ss = Split(sStr, ";")
    For i = 0 To UBound(ss)    
        If Left(Trim(ss(i)), Len(sDesiredDegree)) = sDesiredDegree Then XLstrtok2 = Trim(ss(i)): Exit Function    
    Next    
    XLstrtok2 = "--"
End Function

下面显示的是您的电子表格和将度数放在带有分号的组合字符串右侧的不同列中的公式。

确保您的列足够宽。如果需要,我们可以在底部添加更多代码

With ActiveSheet.Columns("A:E")
    .AutoFit
    .HorizontalAlignment = xlLeft
End With

将最后一列复制到右侧,复制所需的内容。例如,将 E1:E3 复制到 F1:F3。

将最后一行向下复制所需的内容。例如,将 A3:E3 复制到 A4:E4,然后在 A4 中输入新数据。

当然,在顶部插入一行作为适当的标题是明智的。

如果其中有任何不清楚的地方,请告诉我。或者这是否可以接受。请注意数据输入及其一致性(例如,它有时显示 PHD,有时显示 Ph.D),以确定是否需要额外的列,如下图所示的 PHD 变体。

扩展电子表格

扩展公式

相关内容