ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 160|回复: 11

[求助] 不规则表中提取名单

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-4-27 15:28 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
日前求助过一个相对规则的名单提取问题,各位老师讲解的非常好,也解决了自己的问题,非常感谢!但是在后来的实际工作中出现了许多不规则报表,这样原来的方法就不太好用了,现将出现的问题汇总一下发上来,请教各位前辈帮助看一下是否可以解决!再次感谢!!!

不规则表中提取名单.zip

8.35 KB, 下载次数: 25

TA的精华主题

TA的得分主题

发表于 2024-4-27 15:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 edwin11891 于 2024-4-27 16:00 编辑

完全没有规律,地名+各种分区职位等,跟姓名无法创建规则加以区分,人工判别都不简单,无法使用公式。

仅就示例中的数据来说,可以使用:
  1. =TEXTAFTER(TEXTBEFORE(A4:A10,{"(","("}),{"区","部","市","京"},-1)
复制代码


TA的精华主题

TA的得分主题

发表于 2024-4-27 16:19 | 显示全部楼层
在Excel不规则表中提取名单,可以尝试以下方法:
  • 使用LEFT和LEN函数
    • 当你需要从文本字符串的左侧提取指定数量的字符时,可以结合使用LEFT和LEN函数。例如,如果你需要提取姓名,而姓名总是位于某个特定文本字符串的开始部分,你可以使用类似=LEFT(A3,LEN(A3)-9)的公式来提取。这里的数字9代表你要从文本字符串末尾去除的字符数,具体情况需要根据你的数据格式来调整。
  • 使用MID函数结合FIND或SEARCH函数
    • 对于需要从文本中间提取信息的情况,可以使用MID函数。如果你要提取的信息前后有特定的标识符(如“元”字),你可以先用FIND或SEARCH函数找到这个标识符的位置,然后使用MID函数根据这个位置提取信息。例如,公式=MID(A3,FIND("元",A3,1)-3,3)会从包含“元”字的文本中提取“元”字前3个字符。同样,SEARCH函数与FIND函数类似,但不区分大小写。
  • 使用RIGHT函数
    • RIGHT函数用于从文本字符串的右侧提取指定数量的字符。如果你知道名单总是位于某个文本字符串的末尾,你可以使用RIGHT函数来提取。例如,=RIGHT(A1,2)会从A1单元格的文本字符串中提取最右边的2个字符。
  • 使用TOCOL函数(针对Excel 365和最新WPS表格用户)
    • 如果你正在使用Excel 365或最新的WPS表格,并且需要将多列的区域或数组转换为单列以提取名单,你可以使用TOCOL函数。这个函数可以将多行多列的值转换为一列,便于你进一步处理或提取唯一值。
  • 使用数据透视表
    • 对于更复杂的数据提取需求,你可以考虑使用Excel的数据透视表功能。通过适当设置数据透视表的行、列和值区域,你可以轻松地从不规则表中提取和汇总数据。
  • 文本分列
    • 如果名单与其他信息之间有明显的分隔符(如逗号、空格等),你可以使用Excel的“文本分列”功能来将文本拆分成多列,从而轻松提取名单。

请注意,上述方法可能需要根据你具体的数据格式和需求进行适当调整。在进行数据提取时,建议先备份原始数据以防意外丢失或损坏。

成长作文网:http://www.sjzwndj.cn

成长作文网:http://www.sjzwndj.cn

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-27 16:51 | 显示全部楼层
edwin11891 发表于 2024-4-27 15:47
完全没有规律,地名+各种分区职位等,跟姓名无法创建规则加以区分,人工判别都不简单,无法使用公式。

...

edwin11891老师您好!回帖已拜读,完全解决了问题,所涉及的"分割字符前文本"与"分割字符后文本"两个函数也大致理解,但是其中“{”在其中的作用还不甚理解,希望能赐教,非常感谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-27 16:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
sqxzgg 发表于 2024-4-27 16:19
在Excel不规则表中提取名单,可以尝试以下方法:
  • 使用LEFT和LEN函数:
  • 当你需要从文本字符串的左侧 ...

  • sqxzgg前辈您好!读了您的回帖受益匪浅,知道自己还很小白,需要更多的学习,为您鼓掌,谢谢!

    TA的精华主题

    TA的得分主题

    发表于 2024-4-27 18:10 | 显示全部楼层
    天气预报2023 发表于 2024-4-27 16:51
    edwin11891老师您好!回帖已拜读,完全解决了问题,所涉及的"分割字符前文本"与"分割字符后文本"两个函数 ...

    表示多个条件,条件之间是“或”的关系,也可以理解为数组,之所以需要多个条件并列,是因为数据源不规范,有多种分隔符(中文括号、英文括号等),以及紧贴姓名之前的各种文字。

    下面公式是提取地区名称,同样的道理,在一、二、三等序号后面有多种标点符号:
    1. =LEFT(TRIM(TEXTAFTER(A4:A10,{"、",".",",",","})),2)
    复制代码

    TA的精华主题

    TA的得分主题

     楼主| 发表于 2024-4-27 21:35 | 显示全部楼层
    [广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
    edwin11891 发表于 2024-4-27 18:10
    表示多个条件,条件之间是“或”的关系,也可以理解为数组,之所以需要多个条件并列,是因为数据源不规范 ...

    edwin11891老师您好!明白了!您的解释通俗易懂,谢谢了!

    TA的精华主题

    TA的得分主题

    发表于 2024-4-28 10:46 | 显示全部楼层
    [广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
    天气预报2023 发表于 2024-4-27 16:54
    sqxzgg前辈您好!读了您的回帖受益匪浅,知道自己还很小白,需要更多的学习,为您鼓掌,谢谢! ...

    你这不是小白了,云南市都造出来了,了不得了呢。

    TA的精华主题

    TA的得分主题

     楼主| 发表于 2024-5-2 10:18 | 显示全部楼层
    hellostock 发表于 2024-4-28 10:46
    你这不是小白了,云南市都造出来了,了不得了呢。

    举个例子,没想到出现低级错误,让老师见笑了!以后要尽量严谨一些啊。

    TA的精华主题

    TA的得分主题

    发表于 2024-5-2 18:36 | 显示全部楼层
    [广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
    image.png
    1. =REGEXP(A4,"(?<=[省市区部]).+(?=[((])")
    复制代码
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    手机版|关于我们|联系我们|ExcelHome

    GMT+8, 2024-5-9 03:21 , Processed in 0.043312 second(s), 10 queries , Gzip On, MemCache On.

    Powered by Discuz! X3.4

    © 1999-2023 Wooffice Inc.

    沪公网安备 31011702000001号 沪ICP备11019229号-2

    本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

    快速回复 返回顶部 返回列表