Excel:通过分隔符或模式分割字符串,分离文本和数字

  • Share This
Michael Brown

本教程解释了如何使用公式和拆分文本功能在Excel中拆分单元格。 你将学习如何用逗号、空格或任何其他分隔符分隔文本,以及如何将字符串拆分为文本和数字。 .

将一个单元格中的文本分割成几个单元格是所有Excel用户偶尔要处理的任务。 在我们早期的一篇文章中,我们讨论了如何在Excel中用 文本到列 功能和 闪光填充 今天,我们将深入了解如何使用公式和 "数据 "来分割字符串。 分割文本 工具。

    如何在Excel中用公式分割文本

    要在Excel中分割字符串,通常使用LEFT、RIGHT或MID函数与FIND或SEARCH结合使用。 乍一看,有些公式可能看起来很复杂,但实际上逻辑很简单,下面的例子会给你一些提示。

    用逗号、分号、斜线、破折号或其他分隔符来分割字符串

    在Excel中拆分单元格时,关键是找到文本字符串中分隔符的位置。 根据你的任务,可以使用不区分大小写的SEARCH或区分大小写的FIND来完成。 一旦你得到分隔符的位置,使用RIGHT、LEFT或MID函数来提取文本字符串的相应部分。 为了更好地理解,让我们考虑以下内容例子。

    假设你有一个SKU的列表,其中包括 项目-颜色-尺寸 模式,而你想把这一列分成3个独立的列。

    1. 为了提取 项目名称 (第1个连字符之前的所有字符),在B2中插入以下公式,然后将其复制到下一列。

      =left(a2, search("-",a2,1)-1)

      在这个公式中,SEARCH确定字符串中第一个连字符("-")的位置,LEFT函数提取它左边的所有字符(你从连字符的位置减去1,因为你不想提取连字符本身)。

    2. 为了提取 颜色 (第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

    3. 为了提取 尺寸 (第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个快速步骤实现同样的结果。

      1. 假设你已经安装了Ultimate Suite,选择要分割的单元格,然后点击 分割文本 上的图标。 阿博比特数据 标签。

      2. ǞǞǞ 分割文本 在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文件)。

      Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.