我正在尋找一個將資料拆分為新列的公式。我可以簡單地做到這一點,但我想對其進行分類。
IE 我有一欄包含每個人的學位信息,例如:
BS 1990; MS 1991; PHD 1992;
Next record:
BS 1999; PHD 2000
每個人的數據都不同,學位數量也不同。我想將所有 BS 移至一個新專欄,將所有 MS 移至另一欄,將 PHD 移至另一欄。我可以將資料拆分為新列,但不能拆分為正確的列,因為每行的資料都不同。
謝謝。
答案1
答案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 變體。