ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 【拆分原表格的单元格内容,不同情况】分类查询

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-2-3 11:12 | 显示全部楼层 |阅读模式
原帖子:https://club.excelhome.net/thread-1709748-4-1.html
原帖子:kkk和草爷都回答了,和这个类似。
但是这个需求,前面的事复杂一点,就是需要拆分单元格内的内容,是不是需要再原帖子二维数组的基础上,代码加入find、left等函数?以便精准定位?

如图如附件,

需求:
根据第4列,招生专业,返回第16列的【专业二级分类】
(1)如果第4列,是“XXX类”开头的,就直接提取这个类名。
比如第6行粉色底色的,就直接提取“经济学类”;

(2)如果后面有括号,且括号外不是“xxx类”开头的,
那就根据括号外的专业名称,在同目录下的另一个工作簿“本科专业目录”
中查询,这个专业属于哪一个二级分类,标蓝色底色的都是这种情况。
应用统计学∈统计学类,材料科学与工程∈材料类。
【这种情况我感觉应该刨除括号内的干扰项,比如“中外合作办学”“新材料”等字样,不然无法做到精确查询】

(3)第3种情况,就是标绿色底色的,简单就写了专业名称,没有括号,也没有“类”字眼,那就还是在同目录下的另一个工作簿“本科专业目录”
中查询。电子商务∈电子商务类,会计学∈


【提问】专业查询 二级专业分类.png

【辽宁小册子】第1-6步 专业查询 二级专业分类.rar

1.19 MB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2025-2-3 15:58 | 显示全部楼层
本帖最后由 shiruiqiang 于 2025-2-3 16:34 编辑

1正则第一个是否最右边的为“类”,是的话取类别
不包含,目录的作字典
这种班怎么算?

image.jpg

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-2-3 16:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2025-2-3 17:09 | 显示全部楼层
绝大部分能查到,个别查不到的,手工再搞一下吧。

【辽宁小册子】第1-6步 专业查询 二级专业分类.zip

1.27 MB, 下载次数: 4

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-2-3 17:10 | 显示全部楼层
参与一下。。。

  1. Sub ykcbf()  '//2025.2.3
  2.     Application.ScreenUpdating = False
  3.     Set d = CreateObject("Scripting.Dictionary")
  4.     With Application.FileDialog(msoFileDialogFilePicker)
  5.         .InitialFileName = ThisWorkbook.Path & ""
  6.         .Title = "请选择对应Excel文件"
  7.         .AllowMultiSelect = False
  8.         .Filters.Clear
  9.         .Filters.Add "Excel文件", "*.xls*"
  10.         If .Show Then f = .SelectedItems(1) Else Exit Sub
  11.     End With
  12.     Set wb = Workbooks.Open(f, 0)
  13.     arr = wb.Sheets(1).UsedRange
  14.     wb.Close 0
  15.     For i = 10 To UBound(arr)
  16.         If Val(arr(i, 1)) Then
  17.             s = arr(i, 5)
  18.             d(s) = arr(i, 2)
  19.         End If
  20.     Next
  21.     On Error Resume Next
  22.     With Sheets("物理学科类")
  23.         r = .Cells(Rows.Count, 1).End(3).Row
  24.         arr = .[a1].Resize(r, 16)
  25.         For i = 6 To UBound(arr)
  26.             k = InStr(arr(i, 4), "类")
  27.             If k Then
  28.                 arr(i, 16) = Left(arr(i, 4), k)
  29.             Else
  30.                 k1 = InStr(arr(i, 4), "(")
  31.                 If k1 Then
  32.                     s = Left(arr(i, 4), k1 - 1)
  33.                     arr(i, 16) = d(s)
  34.                 Else
  35.                     arr(i, 16) = d(arr(i, 4))
  36.                 End If
  37.             End If
  38.         Next
  39.         .Cells(1, 16).Resize(r, 1) = Application.Index(arr, 0, 16)
  40.     End With
  41.     Set d = Nothing
  42.     Application.ScreenUpdating = True
  43.     MsgBox "OK!"
  44. End Sub

复制代码


评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2025-2-3 17:46 | 显示全部楼层
本帖最后由 shiruiqiang 于 2025-2-3 17:49 编辑

他里面有个“语文(师范类)”这种
image.jpg

image.jpg

TA的精华主题

TA的得分主题

发表于 2025-2-3 17:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
shiruiqiang 发表于 2025-2-3 17:46
他里面有个“语文(师范类)”这种

个别有错误,管不了了,这个手动调一下吧。

TA的精华主题

TA的得分主题

发表于 2025-2-3 19:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2025-2-3 19:37 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
按自己理解写了一下。。。

【辽宁小册子】第1-6步 专业查询 二级专业分类.rar

1.27 MB, 下载次数: 4

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-2-3 22:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ykcbf1100 发表于 2025-2-3 17:09
绝大部分能查到,个别查不到的,手工再搞一下吧。

草爷,亲测好使。
评分今天暂时没了,明天补上。
明天我再开始研究一下草爷最近回复我的3个字典的写法,之前一直研究kkk的二维数组方法解决的多条件查询,还未接触字典。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-2-13 02:02 , Processed in 0.028131 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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