将文本对拆分为单独的列

Posted

技术标签:

【中文标题】将文本对拆分为单独的列【英文标题】:Split text pairs into separate columns 【发布时间】:2015-02-09 22:41:00 【问题描述】:

我在 OpenOffice Calc 中有下表:

第 1 列

(Col1 Row1) 夹克 - 白色 (Col1 Row2) 裤子 - 蓝色 (Col 1 Row3) 腰带- 黑色 (Col1 Row4) 夹克 - 黑色 (Col1 Row5) 裤子 - 白色 (Col 1 Row6) 腰带- 蓝色 等等等等……

我要做的是将所有颜色分成单独的列(例如第 2 列),并将所有项目留在第 1 列中。

我已尝试使用“查找”和“替换”功能,该功能可以很好地删除颜色,但我找不到将这些颜色移动到另一列的方法。 我查看了 EXACT、FILTER、LEFT 和 RIGHT 函数,但这些函数似乎都不符合要求。

【问题讨论】:

【参考方案1】:

我假设在您的表格中,项目和颜色由连字符分隔,如果这是分隔符,那么一种解决方案可能如下。

您可以使用 FIND 函数获取连字符在字符串中的位置,并将其输入到 LEFT 公式中以获取其左侧的所有内容。因此,如果您的第一个字符串在单元格 A1 中,那么公式 LEFT(A1;FIND("-";A1;1)-1) 应该会得到该项目。

要获得颜色,您可以使用与 RIGHT 公式相同的原理,但不是直接使用 FIND 的结果,而是要从字符串的总长度中减去它以获得正确的位置。所以在这种情况下,公式 RIGHT(A1;LEN(A1)-FIND("-";A1;1)) 应该可以得到颜色。

在这两种情况下,都会出现前导空格和尾随空格的问题,因此我建议将两者都包装在 TRIM 函数中。所以我的最终建议如下

获取项目的公式

=TRIM(LEFT(A1;FIND("-";A1;1)-1))

获取颜色的公式

=TRIM(RIGHT(A1;LEN(A1)-FIND("-";A1;1)))

【讨论】:

以上是关于将文本对拆分为单独的列的主要内容,如果未能解决你的问题,请参考以下文章

如何将字符串字典转换为字典并拆分为单独的列

MySQL查询将分隔字符串值拆分为单独的列[重复]

将地址值拆分为单独的列

根据值的数量将熊猫列拆分为多个单独的列[重复]

将列表的 spark DF 列拆分为单独的列

用户定义的函数,有条件地将文本拆分为 Oracle 列