【Excel】用公式提取Excel单元格中的汉字

昨天一个前端的朋友找我帮忙用excel提取代码中的汉字(字符串),可算费了劲儿了,他要提取的内容均在单引号中,但问题是没有统一的规律,同一个单元格可能存在多个要提取的内容,而且汉字中间也夹杂其他字符。所以总结了一下提取汉字的几种情况。


一、用公式提取Excel单元格中的汉字

对于一个混杂各种字母、数字及其他字符和汉字的文本字符串,要提取其中的汉字,在Excel中通常可用下面的公式。

例如下图A列中的字符串,要在B列提取其中的汉字(或词语)。

640?wx_fmt=png&wxfrom=5&wx_lazy=1

如果汉字位于字符串的开头或结尾,用LEFT或RIGHT函数即可提取,例如上图中A2:A4区域中的字符串。在B2中输入下面的公式:

=LEFT(A2,LENB(A2)-LEN(A2))

就会返回字符串中开头的几个汉字。

说明:LENB函数和LEN函数都可用返回文本字符串中的字符数,不同的是,LENB函数会将每个汉字(双字节字符)的字符数按2计数,LEN函数则对所有的字符,无论是单字节还是双字节都按1计数,因而公式中的“LENB(A2)-LEN(A2)”返回文本字符串中的汉字个数。

同样对于A6:A8区域中的字符串,在B6中用RIGHT函数即可:

=RIGHT(A6,LENB(A6)-LEN(A6))

如果汉字位于字符串的中间,可使用下面的数组公式。例如图中A10:A12区域中的字符串,在B10中输入数组公式:

=MID(A10,MATCH(2,LENB(MID(A10,ROW(INDIRECT("1:"&LEN(A10))),1)),),LENB(A10)-LEN(A10))

公式输入完毕,按Ctrl+Shift+Enter结束。

说明:公式先用MID函数将字符串中的每个字符分解到到一个字符数组中,然后用LENB函数返回各字符的的字符数,对于汉字会返回“2”。用MATCH函数取得第一个“2”的位置,即第一个汉字的位置,最后再用MID函数提取汉字。

使用上述公式时要求字符串中的汉字是连续的,中间没有其它字符分隔。

如果字符串中的汉字之间有其它字符分隔,例如上图中的A14单元格,要提取其中的所有汉字,可用下面的自定义函数。方法是:

1. 按Alt+F11,打开VBA编辑器,单击菜单“插入→模块”,在代码窗口中输入粘贴下面的代码:

Function 提取汉字(sString As String) As String

Dim regEx As Object

Set regEx = CreateObject("VBScript.RegExp")

With regEx

'搜索整个字符串

.Global = True

'匹配非汉字

.Pattern = "[^\u4e00-\u9fa5]"

'将字符串中的非汉字替换为空

提取汉字 = .Replace(sString, "")

End With

Set regEx = Nothing

End Function

 

说明:上述代码定义了一个自定义函数“提取汉字”。代码利用RegExp对象使用正则表达式匹配模式,清除字符串中的所有非汉字,得到其中的汉字。

2. 返回Excel工作表界面,在B14单元格中输入公式:

=提取汉字(A14)

即可取得A14单元格字符串中的所有汉字。

 

二、用公式提取引号(某2个相同字符)之间的内容

640?wx_fmt=png

公式:=MID(A2,FIND("'",A2)+1,FIND("^",SUBSTITUTE(A2,"'","^",2))-FIND("'",A2)-1)

 640?wx_fmt=png

如果要提取第一个字符和最后一个相同字符之间的内容,则修改公式为:

=MID(A2,FIND("'",A2)+1,FIND("^",SUBSTITUTE(A2,"'","^",LEN(A2)-LEN(SUBSTITUTE(A2,"'",""))))-FIND("'",A2)-1)

在excel中,如何查询字符串的第N次出现位置,或最后一次出现位置,使用公式:

最后一次出现位置

=FIND("这个不重复就行",SUBSTITUTE(A1,"-"," 这个不重复就行",LEN(A1)-LEN(SUBSTITUTE(A1,"-",""))))

第N次出现位置

假如查第四个\的位置

=find("这个不重复就行",substitute(A1,"\","这个不重复就行",4))

 

三、用FIND函数查找字符串中的双引号

有这样一个字符串        AB"CDEFG        想查找到双引号的位置, 公式是这样的

=FIND("""",E11)

而不是    =FIND(""",E11)


  • 0
    点赞
  • 1
    收藏
  • 0
    评论
excel函数公式及技巧搜集 从身份证号码提取出生年月日 从身份证号码提取出性别 从身份证号码进行年龄判断 按身份证号号码计算至今天年龄 以2006年10月31日为基准日,按按身份证计算年龄(周岁)公式 按身份证号分男女年龄段 年龄和工龄计算 根据出生年月计算年龄 根据出生年月推算生肖 如何求出一个人到某指定日期周岁? 计算距离退休年龄公式 求工齡 计算工龄 年龄及工龄计算自动算出工龄日期格式为(yyyy.mm.dd) 时间和日期应 自动显示当前日期公式 如何在单元格自动填入当前日期 如何判断某日是否星期天 某个日期是星期几 什么函数可以显示当前星期 求本月天数 显示昨天日期 关于取日期 如何对日期进行上、、下旬区分 如何获取一个月最大天数 日期格式转换公式 排名及排序筛选 一个具有11项汇总方式函数SUBTOTAL 自动排序 按奇偶数排序 自动生成序号 如何自动标示A栏数字大小排序? 如何设置自动排序 重复数据得到唯一排位序列 按字符数量排序 排序字母与数字混合内容 随机排序 排序问题 怎样才能让数列自动加数 一个排序问题 数字自动排序,插入后不变? 根据规律重复姓名列产生自动序号 排名函数 自动排名公式 百分比排名公式写法为: 平均分及总分排名 求名次排名 排名次根据分数进行普通排名 对于普通排名分数相同时,按顺序进行不重复排名 依分数比高低名次成绩排名 美国式排名 国式排名 求最精简自动排名公式 排序后排名 位次排名 根据双列成绩进行共同排名 在双列间排名 等次排名 不等次排名(行小排先) 不等次排名(行大排先) 顺次排名 有并列排名 无并列排名 有并列分段排名 无并列分段排名 成绩排名 如何排名 数据排名(隔几行排名) 根据分数进行倒排名 倒数排名函数是什么 如何实现每日各车间产量排名 分数相同时按照一科分数进行排名 筛选后自动产生序列号并汇总 如何筛选奇数行 函数筛选姓名 名次筛选 如何实现快速定位(筛选出不重复值) 如何请在N列列出A1:L9每列都存在数值 自动为性别编号问题 文本与页面设置 EXCEL如何删除*号 将字符串星号“*”替换为其它字符 去空格函数如何去掉字符和单元格空格 怎样快速去除表不同行和列空格 如何禁止输入空格 代替单元格字符串 把单元格数字转变成为特定字符格式 把有六百多个单元格一列,变成一页多列 将N列变M列公式归纳为 一列变四列 四列变一列 重复四次填充 多行数据排成一列 将单元格一列分为多列 首写字母大写 把单元格编号小写字母变成大写字母 让姓名左右对齐 数字居而小数点又对齐 计算指定单元格编号组非空单元格数量 比较两个单元格内容是否一致 怎么样设置才能让这一列每个单元格只能输入12位 如何让工作表奇数行背景是红色偶数行背景是蓝色 计算特定一组单元格,满足条件单元格个数 把文本格式数字转换成真正数字 设置页码 Excel表格里如何插入页码? 如何设置页脚首页为第5页 表格页脚问题 无拘无束页眉 打印表头 Excel打印如何不显示错误值符号 对于一些不可打印字符处理 那个函数可将个位数前面零值显示出来? 如果你要在A3前面插入100行 请问如何每隔30行粘贴一新行 在工作表里有连续10行数据, 现在要每行间格2行 一个大表每一行下面需要加一行空行,怎么加最方便 Excel插入空白行 快速删除工作表空行快速删除空行一次删完Excel里面多出很多空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉? 去掉默认表格线(网线)表格框线 列标标识变了 符号意义 双击格式刷竟也能COPY文本(不是文本格式) 查找+格式刷 光标移动 最后一行为文本最后一行为数字 如何在EXCEL快速定位最后一行数据 SUN函数快速求和 在Excel快速查看所有工作表公式Excel设置行间距 怎样同时改变多行行高 快速换行 让文本换行 在Excel行列快速转换 将原有列内容倒置过来 快速回到A1单元格 复制粘贴回车键 一次选批注单元格 一次在所有单位格插入批注 在公式插入批注 不连续单元格填充同一数据 空白行填充 怎样函数向下实现自动填充 怎么设置自动保存 避免输入网址和电子邮件地址时超链接 单元格前面自动加了等号 加盖公章 查找+格式刷 Excel鼠标双击妙 Excel快速定位技巧实例 在Excel插入Flash时钟步骤 小写数字转换成人民币大写 轻轻松松制作超复杂Excel表头 字符截取与增减 截取单元格里某个字符后字符 截取字符公式 如何确定*号后数字 如何提取数字数 三个数,如何取出间那个 取数值后三位公式 取数函数 如何把单元格数字提取出来(字符串不连续) 数字在字符串不连续如何提取数字 如何提取“-”前后字符 怎样删去﹕后文字 怎样只取“.”之后文字﹖ 获取单元格内容字符串 如何提取一串数字几位数字(字符) 如何把一个单元格数字挑出来 分割文本 按照给定位数,截断小数点后数字 单元格数字提取问题 以关键字提取名称 如何把文本前几个字符去除 对一列文字统一去掉最后一个字 讨如何去掉单元格第一个数字? 论一下取最后一个单词方法 如何去掉单元格最后一位数字 如何在一列已经输入数据前添加“p” 什么函数可以插入字符 如何在数据前添加“*”号 数字前面加上数字 数据拆分与合并 数字如何拆分 单元格数据拆分 单元格拆分 如何拆分字组 连字符“&”来合并文本怎样把不同格式不同位置内容合并到一个单元格内 把不同单元格内容合到一个单元格里 合并与拆分 合并不同单元格内容 关于文字在表格组合 求拆解合并公式 如何把字母和数字分开? 把分散在各单元格内容合在一个单元格 多个工作表单元格合并计算 条件自定义格式 通过条件格式将小计和总计行设为不同颜色 如何实现这样条件格式 隔行不同字体颜色怎么设置 让不同类型数据不同颜色显示 如何做这样EXCEL表(颜色交叉) 条件格式 使条件格式设置颜色条纹 相同数据提示? 如何做到小于10显示二位小数,大于10显示一位小数 如何根据数值正负加上“+”“-”符号 120,000显示为12.0 121,999显示为12.2 自定义单元格格式将单元格数全部变成万元表示 有何办法实现将一张表数据由元单位转换为万元 常自定义格式 自定义格式 怎样定义格式 在工具按钮之间设置分隔线 自定义区域为每一页标题 一个单元格内格式问题 定制单元格数字显示格式 巧定位选条件单元格 工作表标签字体和大小可以更改吗 隔行不同颜色显示,请问如何做 将单元格设置为有“凸出”效果或“凹进去”效果 在Excel设计彩色数字 定义名称妙处 零值问题 汇总计算与统计 个调税公式 算物价函数 自动计算应收款滞纳金 淘汰率 应公积金一个函数 如何利公式将数值转为百分比格式 比高得分公式 自动评定奖级 对带有单位数据如何进行求和 对a列动态求和 动态求和公式跳跃求和 有规律隔行求和 如何实现奇数行或偶数行求和 单数行求和统计偶数单元格合计数值 隔行求和公式设置 隔列将相同项目进行求和 隔行或隔列加总 请问如何在一百行内做隔行相加 如何将间隔一定数据相加呢 隔列求和(A、B列) 隔列求和公式 隔列求和 关于隔行、隔列求和问题 EXCEL求两列对应元素乘积之和 计算900~1000之间数值之和 双条件求和 如何实现这样条件求和 A1:A10数字显为文本格式时,如何求和 如何分班统计男女人数 统计数值大于等于80单元格数目 计算出A1里有几个abc 有条件统计 如何统计各年龄段数量 如何计算20-50岁人数? 如何统计40-50岁个数 要统计出7岁女生人数 统计人数 如何统计A1:A10,D1:D10人数? 如何让EXCEL自动从头统计到当前单元格 统计人数 统计人数 求各分数段人数 有什么方法统计偶数 如何显示 工资统计问题 统计数据问题一例 根据给定条件,对数据进行合计 十列数据合计成一列 统计汉字字符个数 关于取数 统计单元格内不为空格数 自动将销量前十名产品代号及销量填入表 统计最大连续次数3个“不重复”个数统计在一列有重复姓名,如何统计出具体有几人 计数问题 不相同 如何分班统计男女人数 在几百几千个数据发现重复项 统计互不相同数据个数 多个工作表单元格合并计算 单个单元格字符统计 数据区包含某一字符总和,该什么公式 函数如何实现分组编码 数值取整及进位 取整数函数 数值取整 求余数函数 四舍五入公式 对数字进行四舍五入 如何实现“见分进元” 四舍五入 如何四舍五入取两位小数 根据给定位数,四舍五入指定数值 四舍六入 如何实现2舍3入 怎么设置单元格以千元四舍五入 ROUND函数四舍五入不进位解决方法? 保留一位小数 如何三舍四入 另类四舍五入 想把小数点和后面数字都去掉,不要四舍五入 求真正四舍五入后数 小数点进位 个位数归0或者归5 大小值或间值 求平均值 如何实现求平均值时只对不等于零数求均值? 平均分问题 怎样求最大值(最小值或间值)平均数怎么弄 去掉其两个最大值和两个最小值公式 去一行最高分最低分求平均值 在9个数值去掉最高与最低然后求平均值 求最大值(n列) 如何实现求平均值时只对不等于零数求均值? 得到单元格编号组最大数或最小数 标记出3个最大最小值 取前五名,后五名方法 如何公式求出最大值所在行? 求多个最高分 如何求多条件平均值 想求出第三大之数值 查询和查找引 查找顺序公式 怎样实现精确查询 查找及引 查找函数 怎么能方便判断某个单元格包含多少个指定字符?如何查找函数 日期查找问题 如何自动查找相同单元格内容 查找函数怎样对号入座(查找) 一个文本查找问题 查找一列最后一个数值 查找重复字符 请教查找替换问题 IF函数替换法总结 查找函数(查找末位词组) 怎样从原始数据自动获取最后一个数据 两列数据查找相同值对应位置 查找数据公式两个(基本查找函数为VLOOKUP,MATCH) 输入数据技巧 谈谈Excel输入技巧 一列不输入重复数字 如果要查找重复输入数字 单元格输入 大量0值输入超级技巧 如何在C列输入工号在D列显示姓名 输入提示如何做 在信息输入前就给予提示 数据有效性

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值