Table of contents
本教程解释了如何使用公式和拆分文本功能在Excel中拆分单元格。 你将学习如何用逗号、空格或任何其他分隔符分隔文本,以及如何将字符串拆分为文本和数字。 .
将一个单元格中的文本分割成几个单元格是所有Excel用户偶尔要处理的任务。 在我们早期的一篇文章中,我们讨论了如何在Excel中用 文本到列 功能和 闪光填充 今天,我们将深入了解如何使用公式和 "数据 "来分割字符串。 分割文本 工具。
如何在Excel中用公式分割文本
要在Excel中分割字符串,通常使用LEFT、RIGHT或MID函数与FIND或SEARCH结合使用。 乍一看,有些公式可能看起来很复杂,但实际上逻辑很简单,下面的例子会给你一些提示。
用逗号、分号、斜线、破折号或其他分隔符来分割字符串
在Excel中拆分单元格时,关键是找到文本字符串中分隔符的位置。 根据你的任务,可以使用不区分大小写的SEARCH或区分大小写的FIND来完成。 一旦你得到分隔符的位置,使用RIGHT、LEFT或MID函数来提取文本字符串的相应部分。 为了更好地理解,让我们考虑以下内容例子。
假设你有一个SKU的列表,其中包括 项目-颜色-尺寸 模式,而你想把这一列分成3个独立的列。
- 为了提取 项目名称 (第1个连字符之前的所有字符),在B2中插入以下公式,然后将其复制到下一列。
=left(a2, search("-",a2,1)-1)
在这个公式中,SEARCH确定字符串中第一个连字符("-")的位置,LEFT函数提取它左边的所有字符(你从连字符的位置减去1,因为你不想提取连字符本身)。
- 为了提取 颜色 (第1和第2个连字符之间的所有字符),在C2中输入以下公式,然后向下复制到其他单元格。
=mid(a2, search("-",a2) + 1, search("-",a2, search("-",a2)+1) - search("-",a2) - 1)
在这个公式中,我们使用Excel的MID函数从A2中提取文本。
在4种不同的搜索功能的帮助下,开始的位置和要提取的字符数被计算出来。
- 开始编号 是第一个连字符的位置+1。
搜索("-",a2) + 1
- 要提取的字符数 : 第2个连字符和第1个连字符的位置之差,减去1。
search("-", a2, search("-",a2)+1) - search("-",a2) -1
- 开始编号 是第一个连字符的位置+1。
- 为了提取 尺寸 (第3个连字符后的所有字符),在D2中输入以下公式。
=right(a2,len(a2) - search("-", a2, search("-", a2) + 1))
在这个公式中,LEN函数返回字符串的总长度,从中减去第2个连字符的位置,其差值是第2个连字符之后的字符数,RIGHT函数将其提取出来。
以类似的方式,你可以用任何其他字符分割列。 你所要做的就是用所需的分隔符替换"-",例如 空间 (" "), 逗号 (","), 斜线 ("/"), 殖民地 (";"), 分号 (";"),以此类推。
提示:在上述公式中,+1和-1对应于分隔符的字符数。 在这个例子中,它是一个连字符(1个字符)。 如果你的分隔符由两个字符组成,例如一个逗号和一个空格,那么只提供逗号(",")给搜索功能,并使用+2和-2而不是+1和-1。
如何在Excel中通过换行来分割字符串
要用空格分割文本,请使用与上例类似的公式。 唯一不同的是,你需要用CHAR函数来提供换行符,因为你不能在公式中直接输入。
假设,你想分割的单元格看起来类似于这样。
以前面的公式为例,用CHAR(10)代替连字符("-"),其中10是换行的ASCII代码。
- 为了提取 项目名称 :
=left(a2, search(char(10),a2,1)-1)
- 为了提取 颜色 :
=mid(a2, search(char(10),a2) + 1, search(char(10),a2, search(char(10),a2)+1) - search(char(10),a2) - 1)
- 为了提取 尺寸 :
=right(a2,len(a2) - search(char(10), a2, search(char(10), a2) + 1))
这就是结果的模样。
如何在Excel中分割文本和数字
首先,没有一个通用的解决方案可以适用于所有的字母数字字符串。 使用哪种公式取决于特定的字符串模式。 下面你会发现两种常见情况下的公式。
分割 "文本+数字 "模式的字符串
假设你有一列文本和数字结合的字符串,其中数字总是跟在文本后面。 你想打破原始字符串,使文本和数字出现在不同的单元格,像这样。
这一结果可以通过两种不同的方式实现。
方法1:计算数字并提取相应数量的字符
最简单的方法是将数字在文本之后的文本字符串分割开来。
拟 提取数字 ,你在字符串中搜索从0到9的每一个可能的数字,得到数字的总数,并从字符串的末端返回这么多的字符。
在A2的原始字符串中,公式如下。
=RIGHT(A2,SUM(LEN(A2) - LEN(SUBSTITUTE(A2, {"0","1","2","3","4","5","6","7","8","9"},""))))
拟 提取文本 之后,你用LEFT函数从字符串的开头返回多少个字符,然后用提取的数字(C2)减去A2中原始字符串的总长度来计算字符串包含多少个文本字符。
=left(a2,len(a2)-len(c2))
其中A2是原始字符串,C2是提取的数字,如截图所示。
方法2:找出一个字符串中第一位数字的位置
另一个解决方案是使用以下公式来确定字符串中第一个数字的位置。
=MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))
一旦找到第一个数字的位置,你可以通过非常简单的LEFT和RIGHT公式来分割文本和数字。
提取 文本 :
=left(a2, b2-1)
提取 数 :
=right(a2, len(a2)-b2+1)
其中A2是原始字符串,B2是第一个数字的位置。
为了摆脱保持第一位数字位置的辅助列,你可以将MIN公式嵌入LEFT和RIGHT函数中。
提取公式 案文 :
=LEFT(A2,MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))-1)
提取公式 数字 :
=RIGHT(A2,LEN(A2)-MIN(SEARCH({0,1,2,3,4,5,6,7,8,9},A2&"0123456789"))+1)
分割 "数字+文本 "模式的字符串
如果你要分割数字后出现文本的单元格,你可以 提取数字 用以下公式计算。
=left(a2, sum(len(a2) - len(substitute(a2, {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9" }, ""))))
这个公式与上一个例子中讨论的公式相似,只是你用LEFT函数而不是RIGHT函数从字符串的左边得到数字。
一旦你有了这些数字。 提取 文本 通过从原始字符串的总长度中减去数字的数量。
=right(a2,len(a2)-len(b2))
其中A2是原始字符串,B2是提取的数字,如下面的截图所示。
提示:要从以下方面获得号码 文字串中的任何位置 ,使用这个公式或提取工具。
这就是你如何在Excel中使用不同的函数组合来分割字符串。 正如你所看到的,这些公式远非显而易见,所以你可能想下载Excel分割单元格工作簿样本来仔细检查。
如果弄清Excel公式的奥秘曲折并不是你喜欢的职业,你可能会喜欢在Excel中分割单元格的视觉方法,本教程的下一部分将演示这种方法。
如何在Excel中用分割文本工具分割单元格
在Excel中分割列的另一种方法是使用我们的Excel终极套件中包含的分割文本功能,它提供了以下选项。
为了使事情更清楚,让我们仔细看看每个选项,一次一个。
按字符分割单元格
每当你想分割单元格内容时,就选择这个选项。 每一个指定的字符的出现 .
在这个例子中,让我们把下面的字符串作为 项目-颜色-尺寸 你可能还记得,我们用3个不同的公式把它们分成了3个不同的列。 下面是你如何用2个快速步骤实现同样的结果。
- 假设你已经安装了Ultimate Suite,选择要分割的单元格,然后点击 分割文本 上的图标。 阿博比特数据 标签。
- ǞǞǞ 分割文本 在Excel窗口的右侧,将打开一个窗格,你可以做以下事情。
- 拓展 按字符拆分 组,并选择一个预定义的定界符或在 "定界符 "中输入任何其他字符。 定制 箱子。
- 选择是否将单元格分割成列或行。
- 审查结果在 预览 部分,并点击 分割 按钮。
提示:如果一个单元格中可能有几个连续的分隔符(例如,一个以上的空格字符),选择 将连续的分隔符视为一个 箱子。
完成了!原来需要3个公式和5个不同函数的任务现在只需要几秒钟和一个按钮的点击。
按字符串分割单元格
这个选项让你用 任何字符的组合 从技术上讲,你可以通过使用一个或几个不同的子串作为每个部分的边界,将一个字符串分成几个部分。
例如,用连词""来分割一个句子。 和 "和" 或 ",展开 按字符串分割 组,并输入分隔符串,每行一个。
因此,源短语在每个分隔符出现时都被分开。
提示:字符 "或 "以及 "和 "往往是 "橙色 "或 "安达卢西亚 "等词的一部分,所以一定要输入一个 空间 前后 和 和 或 以防止拆字。
这里还有一个真实的例子,假设你从外部来源导入了一列日期,它看起来如下所示。
5.1.2016 12:20
5.2.2016 14:50
这种格式不是Excel的常规格式,因此没有一个日期函数会识别任何日期或时间元素。 要将日、月、年、小时和分钟分割到不同的单元格中,请在以下字符中输入 按字符串分割 箱子。
- 点(...)用于分隔日、月和年
- 冒号(:)用于分隔小时和分钟
- 用空格分隔日期和时间
点击 分割 按钮,你将立即得到结果。
按掩码(图案)分割单元格
用掩码分隔单元格意味着分割一个字符串 基于一个模式 .
当你需要将一个同质字符串列表分割成一些元素或子串时,这个选项就非常方便了。 复杂的是,源文本不能在给定分隔符的每次出现时都被分割,只能在某些特定的出现时被分割。 下面的例子会使事情更容易理解。
假设你有一个从某个日志文件中提取的字符串列表。
你想要的是将日期和时间(如果有的话)、错误代码和异常细节放在3个独立的列中。 你不能使用空格作为分隔符,因为日期和时间之间有空格,应该出现在一列中,而异常文本中也有空格,也应该出现在一列中。
解决办法是通过以下掩码来分割字符串。 *ERROR:*Exception:*
其中星号(*)代表任何数量的字符。
冒号(:)包含在定界符中,因为我们不希望它们出现在结果单元格中。
而现在,扩大 按面具分割 的部分。 分割文本 窗格中,输入掩码 输入定界符 框,并点击 分割 :
其结果将与此相似。
注意:按掩码分割字符串是 区分大小写 因此,请确保在掩码中输入的字符与源字符串中出现的字符完全一致。
这种方法的一大优势是灵活性。 例如,如果所有的原始字符串都有日期和时间值,而你希望它们出现在不同的列中,就使用这个掩码。
*ERROR:*Exception:* 异常。
翻译成普通英语,该掩码指示插件将原始字符串分成4部分。
- 在字符串中发现第一个空格之前的所有字符(日期)。
- 第一个空格和单词之间的字符 错误。 (时间)
- 之间的文本 错误。 和 例外。 (错误代码)
- 之后的一切 例外。 (例外文本)
我希望你喜欢这个在Excel中分割字符串的快速而直接的方法。 如果你想试一试,下面有一个评估版本可供下载。 感谢你的阅读,希望下周在我们的博客上见到你!
可用的下载
Excel拆分单元格公式(.xlsx文件)
终极套装14天全功能版(.exe文件)。