ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 大神请进,根据省市区县对应表自动提取快递大头笔

[复制链接]

TA的精华主题

TA的得分主题

发表于 2016-5-22 04:38 | 显示全部楼层
上个图片,Show一下,等高手:
jhjh.gif

快递大头笔取值.rar

81.85 KB, 下载次数: 34

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-22 11:35 | 显示全部楼层
simon5412 发表于 2016-5-22 01:19
看看这个是否符合。。。。

上海市浦东新区宣桥镇三灶金光4组555号          苏无锡        31

实际应该是:沪浦东        26

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-22 11:37 | 显示全部楼层
gbgbxgb 发表于 2016-5-22 04:38
上个图片,Show一下,等高手:

附件中没有看到对应脚本?

TA的精华主题

TA的得分主题

发表于 2016-5-22 12:34 | 显示全部楼层
用时的那段代码没什么用,觉得没必要就删掉
  1. Sub 找()
  2. Dim r As Range
  3. [b2:d84].ClearContents
  4. t = Timer
  5. Application.ScreenUpdating = False
  6. For i = 2 To Sheet1.Range("a65536").End(xlUp).Row
  7. For k = 0 To -3 Step -1
  8.    For j = 2 To 3913
  9.      If Sheet2.Cells(j, 4).Offset(0, k) = "*" Then
  10.        m = "aaaaaa"
  11.      Else
  12.        m = Sheet2.Cells(j, 4).Offset(0, k).Value
  13.      End If
  14.     Set r = Sheet1.Range("a" & i).Find(m, , , xlPart)
  15.      If Not r Is Nothing Then
  16.        Cells(i, 2) = Sheet2.Cells(j, "e")
  17.        Cells(i, 3) = Sheet2.Cells(j, "f")
  18.       
  19.        GoTo line
  20.      End If
  21.    
  22.    Next
  23.   Next
  24. line:
  25. Next
  26. Application.ScreenUpdating = True
  27. [e1] = "用时" & Format(Timer - t, "0.000000s")
  28. End Sub
复制代码

TA的精华主题

TA的得分主题

发表于 2016-5-22 12:37 | 显示全部楼层
long237043787 发表于 2016-5-22 11:37
附件中没有看到对应脚本?

不会给代码的,正如前楼层所说,“等高手”。

广西壮族自治区→广西
广东省→广东
西藏自治区→西藏
香港特别行政区→香港

诸如上述不规范的数据,代码多次反复编写调试,花了近5、6个小时,且其间的工作量没有一点技术性,岂肯为了博个“谢”字给了代码。

另:之所以Show一个,也有私心,是想看他(她)人写的码与我的代码结果比对,其精确度如何,故提供了不含代码的文件供其参考(假设其有心参考的话)。但估计此活无人肯再写了,楼上有两位写了,第一位的用公式(从前后跟帖内容判断),想来,简直可笑,所以不曾下载,第二位的附件下载了,但与本人的代码结果比较,其精准度差太远(且速度相对慢多了,亏其自我感觉良好,还提供了代码运行时长)。

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-22 13:40 | 显示全部楼层
其实不规范的地方,可以在Sheet2里面增加对应辅助列,如广西壮族自治区--广西,可以单独用广西另
做一行,如果查询到对应的广西,即提取正确的大头笔解决。例如一些曾用名,需要排除的干扰词等情
况都可以单独用辅助列进行精准判断,优先判断需要剔除的词汇,曾用名,然后是按四级地址,区县,
城市,省份的顺序精准匹配提取,代码只用规范提取最适合行的大头笔。

如白云区:

省份        城市        区县        四级地址        大头笔        包编号
贵州省             贵阳市        白云区              *        贵贵阳        133
内蒙古自治区       包头市        白云鄂博矿区        *        蒙包头        97
广东省             广州市        白云区              *        粤广州        62

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-23 10:07 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可以参考yjh_27大大的22楼附件,按省市区先划分再提取正确的大头笔

http://club.excelhome.net/thread-1277778-3-1.html

等高手 +1 .

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-23 14:49 | 显示全部楼层
请大家帮顶,请大神出手,谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2016-5-24 09:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
上传个大神的附件给大家参考。是先划分省市区县,捉取对应省市区县详细地址列,相对的,后续思路就是按省市区县提取对应大头笔即可。已考虑干扰字,重名,曾用名(曾用县)等。

求助附件2(1).rar

205.42 KB, 下载次数: 28

TA的精华主题

TA的得分主题

发表于 2016-5-24 19:49 | 显示全部楼层
sheet2的省市县必须规范、与对照表一致。
这是应该也是可以做到的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-15 20:30 , Processed in 0.038926 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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