如何將列中的某些資料移動到新列

如何將列中的某些資料移動到新列

我正在尋找一個將資料拆分為新列的公式。我可以簡單地做到這一點,但我想對其進行分類。

IE 我有一欄包含每個人的學位信息,例如:

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

每個人的數據都不同,學位數量也不同。我想將所有 BS 移至一個新專欄,將所有 MS 移至另一欄,將 PHD 移至另一欄。我可以將資料拆分為新列,但不能拆分為正確的列,因為每行的資料都不同。

謝謝。

答案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 變體。

擴展電子表格

擴展公式

相關內容