ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 谁能用VBA帮我把这表处理一下,谢谢

[复制链接]

TA的精华主题

TA的得分主题

发表于 2013-7-22 17:29 | 显示全部楼层 |阅读模式
本帖最后由 xinkunguo 于 2013-7-22 17:33 编辑

处理数据.rar (5.76 KB, 下载次数: 7)

处理前

处理前


处理后

处理后



第一步:根据户口薄号,剃出一家人信息。
第二步:根据户主关系,确定父亲。母亲。配偶。









TA的精华主题

TA的得分主题

发表于 2013-7-22 17:55 | 显示全部楼层
本帖最后由 qy1219no2 于 2013-7-22 20:48 编辑

第5行“是否户主”是否错误??
与户主关系就只有你列中的:户主、子、女、妻这四种关系么?

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-22 22:23 | 显示全部楼层
这只是个例子而已。第五行是有问题。没有改正过来。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-22 22:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
qy1219no2 发表于 2013-7-22 17:55
第5行“是否户主”是否错误??
与户主关系就只有你列中的:户主、子、女、妻这四种关系么?

是错漏了。户主关系这里还有一些,那些关系比较复杂,就这些关系处理一下就可以了。这只是个例子而已。还有我个人的思路。是否可以建立一个数组来做。
第一步找到户口薄号相同的,再找到与户主关系,确定父母亲

TA的精华主题

TA的得分主题

发表于 2013-7-23 09:31 | 显示全部楼层
本帖最后由 qy1219no2 于 2013-7-23 12:53 编辑

你看是否这样。如果数据多,可能运算有点慢,需要耐心等待。
与户主关系仅限于:户主、夫、妻、子、女。如果出现:丈夫、妻子、儿、子女、二儿子等,将无法正确匹配。如果存在其他情况,请先规范!未列入的关系,不匹配,手工自行匹配。
  1. Sub test()
  2.     nR = [a65536].End(xlUp).Row
  3.     If nR < 2 Then Exit Sub
  4.     For i = 2 To nR
  5.         cGX = Right(Cells(i, 5), 1)                                         '本人关系:只取关系的右边第一个字
  6.         ID = Cells(i, 2)                                                    '本人身份证号
  7.         cXB = (IIf(Len(ID) = 15, Right(ID, 1), Mid(ID, 17, 1)) Mod 2 = 1)   '本人性别TRUE-男;FALSE-女
  8.         Set Rng = [c:c].Find(Cells(i, 3), , , 1)                                  '查找相同户口号
  9.         If Not Rng Is Nothing Then                                          '如果找到了
  10.             cAdd = Rng.Address                                              '将找到的单元格地址记录下来,避免重复查找
  11.             Do
  12.                 If Right(Cells(Rng.Row, 5), 1) Like "[主夫妻]" Then         '如果找到的关系为户主、夫、妻之一
  13.                     ID1 = Cells(Rng.Row, 2)                                 '找到的身份证号
  14.                     cXB1 = (IIf(Len(ID1) = 15, Right(ID1, 1), Mid(ID1, 17, 1)) Mod 2 = 1) '计算找到的性别
  15.                     nCol = 0
  16.                     arr = Cells(Rng.Row, 1).Resize(1, 2)                    '将找到的姓名、身份证号存入arr临时数组
  17.                     If cGX Like "[主夫妻]" And cXB1 = Not cXB Then nCol = 10 '如果本人与户主的关系为户主、夫、妻之一,且找到的性别与本人性别相反(未考虑同性婚姻哈)
  18.                     If cGX Like "[子女]" Then nCol = 6 + IIf(cXB1, 0, 2)    '如果本人的关系为子或女
  19.                     If nCol > 0 Then Cells(i, nCol).Resize(1, 2) = arr      '将arr数组信息写入相应单元格
  20.                 End If
  21.                 Set Rng = [c:c].FindNext(Rng)                               '继续查找
  22.             Loop While Not Rng Is Nothing And Rng.Address <> cAdd
  23.         End If
  24.     Next
  25. End Sub
复制代码

处理.rar

12.24 KB, 下载次数: 11

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-23 13:30 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
不管怎么样,先谢谢这位坛友了!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-23 13:39 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
数据需要更改一下,身份证号会改变成长整型的

TA的精华主题

TA的得分主题

发表于 2013-7-23 13:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 qy1219no2 于 2013-7-23 13:46 编辑
xinkunguo 发表于 2013-7-23 13:39
数据需要更改一下,身份证号会改变成长整型的


执行代码前,先选中全部单元格(点A1单元格左上角),鼠标右键——设置单元格格式——文本。然后再执行代码。代码支持户口号无序排列。

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-7-23 14:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
qy1219no2 发表于 2013-7-23 09:31
你看是否这样。如果数据多,可能运算有点慢,需要耐心等待。
与户主关系仅限于:户主、夫、妻、子、女。如 ...

身份证号码最后三位会变成000

TA的精华主题

TA的得分主题

发表于 2013-7-23 14:25 | 显示全部楼层
xinkunguo 发表于 2013-7-23 14:10
身份证号码最后三位会变成000

在8楼已经给你讲了怎样操作!
另外,我给你的附件,计算出来的结果身份证号后三位变成0了么?如果没有,哪你就应该检查自己的操作或数据录入是否规范
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-8 02:05 , Processed in 0.031239 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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