ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 求教大佬,文本处理

[复制链接]

TA的精华主题

TA的得分主题

发表于 2024-10-5 11:48 | 显示全部楼层 |阅读模式
比如说F列中的“入户前门”那就应该是对应的A列的“1.入户门”,那就将“1.入户门”返回至J列,因为已经找到一级分类了,二级分类就在入户门的下一级,也就是“二级分类”中去找,但是用G列的问题项中的文本看你找不到对应的二级,那就需要用H列去找B列二级分类中最接近的文本,找到后,就再用H列的文本去找C列中三级分类的文本,并返回C列最接近的文本

意思就是
1、用G列去匹配A列,找到A列最接近的文本后返回A列的文本到J列,如果再A列找不到,那就用G列去B列找,找到后返回B最接近的文本到到J列
2、然后用G列去匹配B列,找到B列最接近的文本后返回B列的文本到K列,如果G列的数据再B列中找不到最接近的,那就用H列去B列找,然后返回B列最接近的文本到K列。
3、再用H列去匹配C列,找到C列最接近的文本后返回C列的文本到L列,如果在C列中找不到,那就返回“其他”这个文本到L列即可。

请教大佬.rar

40.93 KB, 下载次数: 13

TA的精华主题

TA的得分主题

发表于 2024-10-5 17:27 | 显示全部楼层
你贴子上的说明与文件中的说明内容不一致,最好能好好再整理清晰些。
另外,请说明一下,怎么才算是最接近的文本?规则是什么?

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-5 17:48 | 显示全部楼层
mykitami 发表于 2024-10-5 17:27
你贴子上的说明与文件中的说明内容不一致,最好能好好再整理清晰些。
另外,请说明一下,怎么才算是最接近 ...

相当于将F列的内容与A列的内容逐字比对,并找出相同字符最多的,就是最接近的。
比如说
第一步、F列中的“入户前门”与A列的“1.入户门”最接近,因为有三个字符相同,那就返回“1.入户门”到J列;但是F列有些内容在A列是找不到相同字符的,那就需要用G列的文本在B列去找相同字符最多的,并返回到J列。
第二步、比一部完成后,再用G列的数据去B列找相同字符最多的然后返回到K列,如果G列在B列找不到相同字符的,那就需要用H列去B列找相同字符最多的,然后返回至K列。
第三步、完成第一步和第二步后,再用H列的文本到C列去找相同字符最多的然后返回到L列,如果H列在C列中找不到相同字符,那就返回对应的三级分类中最后一项“其他”。
需要注意的是找到一级分类后只能在一级分类后面找二级分类,找到二级分类后就在对应的三级分类中找,类似于三级下拉菜单的原理。

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-7 10:15 | 显示全部楼层
别沉啊,各位大佬帮帮忙啊

TA的精华主题

TA的得分主题

发表于 2024-10-8 15:57 | 显示全部楼层
你这个没办法去做判断,一个条件同时对应多个值,关键词都还非常模糊。
要么你的原始数据关键词定义更清晰,要么根据优先级匹配到对应条件后返回固定值。

例如“入户前门”,根据你的逻辑应该输出一级分类都是“1入户门”,但你给出的示例结果明显对应多个答案。
例如通过二级分类去查找时,原始数据“柜子”也同样对应多个答案“洁柜”,“玄关柜”等。
微信截图_20241008155448.png

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-10-10 21:23 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
autohotey 发表于 2024-10-8 15:57
你这个没办法去做判断,一个条件同时对应多个值,关键词都还非常模糊。
要么你的原始数据关键词定义更清晰 ...

是的,我的思路是例如“入户前门”,那就将这句话拆分成“入、户、前、门”四个字,然后将这四个字逐字与A列的文本进行比对,返回的逻辑值应该是”入户前门“中有三个字与”1.入户门“相同,其他的文本应该是小于3个的,那就通过计算真值的个数的和,取最大值并返回对应的A列固定文本,如果在A列中找不到(逻辑值个数的和小于1)那就再去B列找,原理同上。不知道这样能不能实现
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-23 08:30 , Processed in 0.045264 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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