データを新しい列に分割する数式を探しています。簡単にできますが、分類したいです。
つまり、次のように各人の学位情報を含む列が 1 つあります。
BS 1990; MS 1991; PHD 1992;
Next record:
BS 1999; PHD 2000
データは、学位の数が異なる人ごとに異なります。BS をすべて 1 つの新しい列に移動し、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 バリアントのように追加の列が必要かどうかを判断してください。