如何在 MS-Excel 中根据“:”拆分字符串?

61 microsoft-excel

我的excel列充满了这样的词:

1.) ABC:DCF
2.) DCF:FED
Run Code Online (Sandbox Code Playgroud)

我想根据“:”拆分每个单词并将结果放在相邻的列中,以便单元格“A:1”中的“ABC:DCF”变为单元格“B:1”中的“ABC”和单元格“中的“DCF” C:1" 以及每列中的相应值。这该怎么做?

nut*_*sch 86

文本到列将起作用。另一种选择,如果你想保持原来的值,是使用公式:
在 B1

=left(a1,find(":",a1)-1) 
Run Code Online (Sandbox Code Playgroud)

在 C1

=mid(a1,find(":",a1)+1,len(a1))
Run Code Online (Sandbox Code Playgroud)

  • 即使使用其他解决方案也可以保留原始值(您可以指定不同的列来存储新值),但我更喜欢这个解决方案,因为它允许始终具有最新值(即,如果您修改 A1, B1 和 C1 将更新,而 text-to-column 选项不会更新)。 (2认同)

小智 65

转到数据选项卡,然后文本到列选项。稍后,选择“分隔”选项,然后选择“其他”并放置您想要的任何分隔符。


Jam*_*ull 26

如果您可以使用 VBA,则可以使用该Split()功能。这是您可以在单元格中使用的用户定义函数 (UDF)。它根据您选择的字符进行拆分,并返回拆分列表的第n个元素。

请参阅如何在 MS Office 中添加 VBA? 有关如何定义 UDF 的信息。

Function STR_SPLIT(str, sep, n) As String
    Dim V() As String
    V = Split(str, sep)
    STR_SPLIT = V(n - 1)
End Function
Run Code Online (Sandbox Code Playgroud)

所以你需要输入:

=STR_SPLIT(A1, ":", 1) // for the first half
=STR_SPLIT(A1, ":", 2) // for the second half
Run Code Online (Sandbox Code Playgroud)


Har*_*tma 8

将其粘贴到 B1 并将其填充到右侧的列和向下的行中:

=TRIM(MID(SUBSTITUTE($A1,":",REPT(" ",999)),COLUMNS($A:A)*999-998,999))

编辑:我之前发布了该公式的本地化版本,其中“,”被替换为“;”。这在美国版本的 Excel 中不起作用:

=TRIM(MID(SUBSTITUTE($A1;":";REPT(" ";999));COLUMNS($A:A)*999-998;999))


归档时间:

查看次数:

363275 次

最近记录:

5 年,5 月 前