巨大な 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
私が考えられる最も簡単な方法は、すでに実行したデータ | テキストを列に変換ウィザードから開始することです。
次に、意図せずに分割されたフィールドを再連結します。