如何用公式轻松删除Excel单元格中两个“*”及其之间的内容?

Excel学习世界 2024-06-07 22:54:39

今天用一个案例,教大家学习 text 函数家族中几个比较特殊的成员。

案例:

将下图 1 中的字符串分别按以下方式分隔、提取出来:

以“*”为分隔符,按列拆分;

将两个“*”及中间的所有内容删除

效果如下图 2 所示。

01以“*”为节点,按列拆分

1. 在 B2 单元格中输入以下公式 --> 下拉复制公式:

=TEXTSPLIT(A2,"*")

公式释义:

textsplit 函数顾名思义,作用就是使用列和行分隔符拆分文本字符串;

语法为 TEXTSPLIT(text,col_delimiter,[row_delimiter],[ignore_empty], [match_mode], [pad_with])

参数如下:

text:必需,要拆分的文本;

col_delimiter:必需,跨列溢出文本的文本分隔点;

[row_delimiter]:可选,跨行溢出文本的文本分隔点;

[ignore_empty]:可选,如果为 TRUE 则可以忽略连续分隔符;默认值为 FALSE,会创建一个空单元格;

[match_mode]:可选,如果设置为 1 则可以不区分大小写;默认值为 0,区分大小写;

[pad_with]:可选,用于填充结果的值,默认值为 #N/A。

公式的意思是将 A2 单元格的值以“*”为分隔符,拆分到不同的列中。

02删除两个“*”及其中间的内容

1. 在 E2 单元格中输入以下公式 --> 下拉复制公式:

=TEXTBEFORE(A2,"*",1)&TEXTAFTER(A2,"*",2)

公式释义:

TEXTBEFORE(A2,"*",1):

textbefore 函数的作用返回在给定字符或字符串之前发生的文本;

语法为 TEXTBEFORE(text,delimiter,[instance_num], [match_mode], [match_end], [if_not_found]);参数如下:

text:必需,要查询的文本;不允许使用通配符;如果为空字符串,则返回空文本;

delimiter:必需,标记要提取其前面内容的文本分隔点;

[instance_num]:可选,分隔符在文本中出现的次数;默认情况下,instance_num = 1;负数开始从末尾开始搜索文本;

[match_mode]:可选,否区分大小写,0 表示区分,1 不区分;默认为区分大小写;

[match_end]:可选,将文本结尾视为分隔符;默认情况下,文本完全匹配;0 表示不将分隔符与文本末尾匹配;1 表示将分隔符与文本末尾匹配;

[if_not_found]:可选,未找到匹配项时返回的值;默认情况下,返回 #N/A;

本公式表示从 A2 单元格中提取出第一个“*”前的所有内容;

TEXTAFTER(A2,"*",2):

textafter 与 textbefore 的语法基本相同,只是作用正好想法,是用于提取分隔符后面的内容;

从 A2 单元格中提取出第二个“*”后面的所有内容;

&:最后再用连接符号将两个公式结果连接起来,就得到最终结果。

0 阅读:3

Excel学习世界

简介:Excel 学习交流