在 excel 单元格中分隔多个字符串
Seperating multiple strings in excel cell
我正在搜索一个 excel 公式(VBA 不是这种情况的选项),它可以拆分出现在单个单元格中的两个文本字符串。
每个字符串可以是任意长度并包含空格,但将由两个或多个空格分隔。第一个字符串几乎也总是以多个空格开头。
因此,例如,您的单元格可能具有以下值:
north wing second floor
south korea dosan-park
我想从中提取 north wing
和 second floor
作为两个单独的单元格,从第一行和第二行得到 south korea
和 dosan-park
有什么想法吗?非常感谢!
放入方程式并根据需要向下拖动
B2 = TRIM(LEFT(A2,SEARCH(CHAR(32),TRIM(A2),SEARCH(CHAR(32),TRIM(A2))+1)))
C2 = TRIM(RIGHT(A2,LEN(A2)-SEARCH(CHAR(32),TRIM(A2),SEARCH(CHAR(32),TRIM(A2))+1)))
从你的例子中,我意识到数据集可以有很多变化。要编写公式,您应该了解各个阶段并尝试实现它。
方法一:公式
如果您的数据位于 A1 单元格中,并且我们假设第一部分始终有两个单独的字符串,那么第一部分的公式如下(例如:north wing,韩国)
=LEFT(TRIM(A1),FIND(CHAR(1),SUBSTITUTE(TRIM(A1)," ",CHAR(1),2))-1)
第二部分如下(示例:二楼,dosan-park)
=RIGHT(TRIM(A1),LEN(TRIM(A1))-FIND(CHAR(1),SUBSTITUTE(TRIM(A1)," ",CHAR(1),2)))
方法二:Excel工具和公式
我能想到的另一个解决方案是使用 Excel 工具。您可以将文本放入一个或多个单元格中,然后使用将文本分列向导将其拆分为多个单元格。
进行如下操作:
- Select 包含要拆分的文本的单元格或列。
- Select Data 选项卡,在 Data Tools 部分单击 Text to Columns 工具.
- 在 Convert Text to Columns 向导中,select Delimited 然后单击 Next。
- Select 数据的分隔符。在你的情况下只是 select Space。您可以在数据预览 window 中查看数据预览。单击下一步。
- Select 列数据格式或使用 Excel 为您选择的格式 (General)。 Select Destination,这是你转换数据的地址。如果出于比较等任何原因想要保留原始数据,则应更改默认目标地址。我建议您将其更改为下一栏地址。例如,如果您的数据位于 A 列 和 行 1(地址 $A$1),您应该将目标地址更改为 $B$1。单击完成。
现在您已将每个字符串分隔在一个新单元格中,您可以将它们与新单元格中的公式连接起来。
转换后,如果单元格 C1、D1、E1 和 F1 中连续出现 "north"、"wing"、"second" 和 "floor",则您可以在单元格 G1 中使用以下公式连接 C1 和 D1 以生成字符串 "north wing"
=CONCAT(C1," ",D1)
对于第二部分,我使用了 TRIM,因为在 "dosan-park" 的情况下,下一个单元格将为空。这将在 "dosan-park".
的末尾添加额外的 space
=TRIM(CONCAT(E1, " ",F1))
如需更多说明,请查看下面的屏幕截图。
用值替换公式
您可以复制 (Ctrl + C) 带有公式的单元格并使用选择性粘贴 (Ctrl + V) 然后点击出现在单元格附近的小粘贴图标,然后单击 V 按钮。
我正在搜索一个 excel 公式(VBA 不是这种情况的选项),它可以拆分出现在单个单元格中的两个文本字符串。
每个字符串可以是任意长度并包含空格,但将由两个或多个空格分隔。第一个字符串几乎也总是以多个空格开头。
因此,例如,您的单元格可能具有以下值:
north wing second floor
south korea dosan-park
我想从中提取 north wing
和 second floor
作为两个单独的单元格,从第一行和第二行得到 south korea
和 dosan-park
有什么想法吗?非常感谢!
放入方程式并根据需要向下拖动
B2 = TRIM(LEFT(A2,SEARCH(CHAR(32),TRIM(A2),SEARCH(CHAR(32),TRIM(A2))+1)))
C2 = TRIM(RIGHT(A2,LEN(A2)-SEARCH(CHAR(32),TRIM(A2),SEARCH(CHAR(32),TRIM(A2))+1)))
从你的例子中,我意识到数据集可以有很多变化。要编写公式,您应该了解各个阶段并尝试实现它。
方法一:公式
如果您的数据位于 A1 单元格中,并且我们假设第一部分始终有两个单独的字符串,那么第一部分的公式如下(例如:north wing,韩国)
=LEFT(TRIM(A1),FIND(CHAR(1),SUBSTITUTE(TRIM(A1)," ",CHAR(1),2))-1)
第二部分如下(示例:二楼,dosan-park)
=RIGHT(TRIM(A1),LEN(TRIM(A1))-FIND(CHAR(1),SUBSTITUTE(TRIM(A1)," ",CHAR(1),2)))
方法二:Excel工具和公式
我能想到的另一个解决方案是使用 Excel 工具。您可以将文本放入一个或多个单元格中,然后使用将文本分列向导将其拆分为多个单元格。
进行如下操作:
- Select 包含要拆分的文本的单元格或列。
- Select Data 选项卡,在 Data Tools 部分单击 Text to Columns 工具.
- 在 Convert Text to Columns 向导中,select Delimited 然后单击 Next。
- Select 数据的分隔符。在你的情况下只是 select Space。您可以在数据预览 window 中查看数据预览。单击下一步。
- Select 列数据格式或使用 Excel 为您选择的格式 (General)。 Select Destination,这是你转换数据的地址。如果出于比较等任何原因想要保留原始数据,则应更改默认目标地址。我建议您将其更改为下一栏地址。例如,如果您的数据位于 A 列 和 行 1(地址 $A$1),您应该将目标地址更改为 $B$1。单击完成。
现在您已将每个字符串分隔在一个新单元格中,您可以将它们与新单元格中的公式连接起来。
转换后,如果单元格 C1、D1、E1 和 F1 中连续出现 "north"、"wing"、"second" 和 "floor",则您可以在单元格 G1 中使用以下公式连接 C1 和 D1 以生成字符串 "north wing"
=CONCAT(C1," ",D1)
对于第二部分,我使用了 TRIM,因为在 "dosan-park" 的情况下,下一个单元格将为空。这将在 "dosan-park".
的末尾添加额外的 space=TRIM(CONCAT(E1, " ",F1))
如需更多说明,请查看下面的屏幕截图。
用值替换公式
您可以复制 (Ctrl + C) 带有公式的单元格并使用选择性粘贴 (Ctrl + V) 然后点击出现在单元格附近的小粘贴图标,然后单击 V 按钮。