Excel で最初のコロンの後でのみ区切ってデータを複数の列に分割するにはどうすればよいですか

Excel で最初のコロンの後でのみ区切ってデータを複数の列に分割するにはどうすればよいですか

巨大な Excel リスト (20,000 行以上) があり、その 1 列リストを複数の列に分割したいと考えています。以前は、データ | テキストを列に分割ウィザードを使用していましたが、制限があるようです。分割を何回停止するかを指定できません。データの例:

type: abds : das
files: asdfs:jgkd

目標は:

|type|abds : das|
|files|asdfs:jgkd|

御時間ありがとうございます :)!

答え1

VBAこのような小さな一回限りのタスクに最適なツールです。

データが列にありA、 から連続していると仮定しますA1。 そうでない場合は、Set rng = ...データに合わせて線を調整するだけです。

Sub SplitColumn()
    Dim rng As Range
    Dim dat As Variant
    Dim i As Long, j As Long

    Set rng = Range([a1], [a1].End(xlDown)).Resize(, 2)
    dat = rng
    For i = 1 To UBound(dat, 1)
        j = InStr(dat(i, 1), ":")
        If j > 0 Then
            dat(i, 2) = Mid$(dat(i, 1), j + 1)
            dat(i, 1) = Left$(dat(i, 1), j - 1)
        End If
    Next
    rng = dat
End Sub

答え2

次のようにして、最初のコロン (:) を「|」 (またはデータに表示されない他の文字) に置き換えることができます。

=SUBSTITUTE(A1,":","|",1)

次に、結果を値としてコピーして貼り付け、それらの値に対して「テキストを列に変換」を実行します。

答え3

通常、このタスクを実行するには VBScript を記述しますが、1 列のシートの場合は、テキスト (タブ区切り) として保存し、再度開くことができます。Excel は、テキスト ファイルの種類を尋ねます。テキスト ファイルであることを伝えfile with Separators、クリックしNextてチェックしOther、編集フィールドにコロンを入力します。

答え4

私が考えられる最も簡単な方法は、すでに実行したデータ | テキストを列に変換ウィザードから開始することです。

次に、意図せずに分割されたフィールドを再連結します。

関連情報