我有一个巨大的 Excel 列表(20k+ 行),我想将一列列表拆分成多列。以前我使用过数据|文本到列向导,但它似乎有一个限制:我无法指定在多少次“拆分”后停止拆分。示例数据:
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 来完成此任务,但如果它是单列工作表,您可以将其保存为文本(制表符分隔),然后再次打开它。Excel 会询问您这是什么类型的文本文件。告诉它它是file with Separators
,单击Next
并勾选Other
,然后在编辑字段中键入冒号。
答案4
我能想到的最简单的方法是从您已经做过的事情开始:数据|文本到列向导。
然后重新连接那些意外分割的字段。