新闻动态
你的位置:9游游戏论坛 > 新闻动态 > 如何提取第一个汉字及后面的内容,如何确定第一个汉字的位置?
如何提取第一个汉字及后面的内容,如何确定第一个汉字的位置?
发布日期:2025-04-12 12:45    点击次数:137

--------------------------

在Excel中,提取字符串中的第一个汉字及其后面的内容是一个常见的任务。本文将介绍七种不同的公式来实现这一目标。

需求:

假设B2单元格中的字符串为“888南天门一日游”,我们需要提取第一个汉字“南”字及后面的内容:“南天门一日游”。

图片

公式:=MID(B2,2*LEN(B2)-LENB(B2)+1,99)

图片

思路:

这个公式利用了汉字和非汉字在字节长度上的区别,利用长度计算来非汉字的个数。

公式解析:

LEN(B2):计算字符串的字符数(包括字母和汉字)。

LENB(B2):计算字符串的字节数(汉字占两个字节,字母占一个字节)。

2*LEN(B2)-LENB(B2):lenb-len是汉字的个数。lenb-(lenb-len)也就是2*lenb-len就是非汉字字符的个数。

MID(B2,2*LEN(B2)-LENB(B2)+1,99):从计算出的位置开始提取字符串中的字符,长度为99(一个足够大的数,确保提取到所有剩余字符)。

图片

2. 公式:=MID(B2,MATCH(2,LENB(MID(B2,ROW($1:$99),1)),0),99)

图片

图片

思路:

利用ROW函数生成一个行号数组,逐一检查每个字符的字节长度,定位第一个汉字。

公式解析:

ROW(1:99):生成一个从1到99的数组。新版Excel可以用SEQUENCE(99)代替

MID(B2,ROW(1:99),1):提取每个位置上的单个字符。

LENB(MID(B2,ROW(1:99),1)):计算每个字符的字节长度。

MATCH(2,LENB(MID(B2,ROW(1:99),1)),0):找到第一个字节长度为2(汉字)的字符的位置。

MID(B2,MATCH(2,LENB(MID(B2,ROW(1:99),1)),0),99):从找到的位置开始提取字符串,长度为99。

图片

3. 公式:=MID(B2,MATCH(1=1,MID(B2,ROW($A$1:$A$99),1)>"吖",0),999)

图片

图片

思路:

利用字符的Unicode编码,通过比较每个字符与“吖”的大小(“吖”为第一个汉字,其他汉字都比它大。),以判断是否为汉字,以此方法来定位第一个汉字的位置。

公式解析:

ROW($A$1:$A$99):生成一个从1到99的数组。

MID(B2,ROW($A$1:$A$99),1):提取每个位置上的单个字符。

MID(B2,ROW($A$1:$A$99),1)>"吖":判断每个字符是否大于“吖”,如果是汉字,这个判断通常为真。

MATCH(1=1,MID(B2,ROW($A$1:$A$99),1)>"吖",0):找到第一个满足判断条件的位置。1=1计算结果为true(也可直接写true)

MID(B2,MATCH(1=1,MID(B2,ROW($A$1:$A$99),1)>"吖",0),999):从找到的位置开始提取字符串,长度为999。

图片

4. 公式:=MID(B2,FIND("%",ENCODEURL(B2)),99)

图片

图片

思路:

利用ENCODEURL函数编码字符串,汉字会被编码成“%XX”的形式,通过定位“%”来找到第一个汉字的位置。

公式解析:

ENCODEURL(B2):对字符串进行URL编码。

FIND("%",ENCODEURL(B2)):找到第一个“%”的位置,这对应于第一个汉字的开始位置。

MID(B2,FIND("%",ENCODEURL(B2)),99):从找到的位置开始提取字符串,长度为99。

图片

5. 公式:=MID(B2,MATCH(" ",MIDB(B2,ROW(1:99),1),0),99)

图片

图片

思路:

利用MIDB函数按字节提取字符(此函数提取汉字时,会返回空格。利用此特点来判断汉字),再通过MATCH函数查找非汉字与汉字的过渡位置。

公式解析:

MIDB(B2,ROW(1:99),1):逐个字节提取字符串中的字符。

MATCH(" ",MIDB(B2,ROW(1:99),1),0):找到第一个字节长度为2(汉字)的字符的位置。

MID(B2,MATCH(" ",MIDB(B2,ROW(1:99),1),0),99):从找到的位置开始提取字符串,长度为99。

图片

6.公式:=TEXTJOIN(,1,TEXTSPLIT(B2,SEQUENCE(10,1,0)))

图片

图片

思路:

该公式利用TEXTSPLIT函数将字符串按特定字符分割,然后用TEXTJOIN函数重新组合非数字部分,从而提取第一个汉字及其后面的内容。

公式解析:

SEQUENCE(10,1,0):生成一个从0到9的序列,用于分割字符串。这些数字在ASCII码中分别对应不同的字符,因此可以用来分割字符串。

TEXTSPLIT(B2, SEQUENCE(10,1,0)):将B2单元格中的字符串按生成的序列分割。分割点包括0到9这10个字符,因此任何数字字符都会作为分割点。

TEXTJOIN(,1,TEXTSPLIT(B2,SEQUENCE(10,1,0))):将分割后的字符串重新组合。TEXTJOIN函数会忽略空白字符,只组合非数字部分。

图片

WPS的公式

=REGEXP(B2,"\D+")

Excel用下面的公式:

=REGEXEXTRACT(B2,"\D+")

图片

思路:

利用正则表达式匹配非数字字符,直接提取非数字字符。

公式解析:

REGEXP(B2,"\D+"):REGEXP是WPS中的正则表达式函数,Excel 365请使用REGEXEXTRACT函数。\D+表示所有非数字字符(包括汉字),直接提取字符串中所有非数字的字符。

关于正则表达式请阅读下面的文章

【下面文章中的函数,在Excel 365中请根据情况换成REGEXEXTRACT、REGEXTEST、REGEXREPLACE】:

①WPS新增的REGEXP函数,非常好用!强烈推荐②WPS新增的REGEXP函数,有何特别魔力让人如此推荐?③WPS新增的REGEXP函数,刚琢磨出的新颖用法正则表达式表示字母的[A-Za-z],能否简写成[A-z]?

通过这七个公式,我们可以有效地提取单元格中第一个汉字及其后面的所有内容。每种方法都有其独特的思路和实现方式,可以根据具体情况选择合适的公式。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

上一篇:没有了
下一篇:没有了