Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: 2014新手

[已解决]把表一按表2的顺序把户主及家庭成员列出来

[复制链接]
 楼主| 发表于 2014-2-12 13:24 | 显示全部楼层
最后排序顺序

最后排列顺序.rar

2.38 KB, 下载次数: 8

回复

使用道具 举报

发表于 2014-2-12 13:33 | 显示全部楼层
  1. Sub A()
  2.     On Error Resume Next
  3.     Range("A1").Resize(1, 4).Copy Range("E1")
  4.     Dim ARR, X, Y, N, I
  5.     ARR = Sheets("表2").Range("A2:D" & Sheets("表2").Cells(Rows.Count, "D").End(3).Row)
  6.     For X = 1 To UBound(ARR)
  7.         N = Application.WorksheetFunction.Match(ARR(X, 3), Range("D2:D14"), 0) + 1
  8.         For Y = N To Sheets("表1").Cells(Rows.Count, "D").End(3).Row
  9.             I = I + 1
  10.             Cells(I + 1, "E") = Cells(Y, "A")
  11.             Cells(I + 1, "F") = Cells(Y, "B")
  12.             Cells(I + 1, "G") = Cells(Y, "C")
  13.             Cells(I + 1, "H") = Cells(Y, "D")
  14.             Cells(I + 1, "I") = "户主" & Cells(N, "D")
  15.             If Cells(Y + 1, 1) <> "" Then Exit For
  16.         Next
  17.     Next
  18. End Sub
复制代码

表1根据表2的顺序把户主及家庭成员都列出来.rar

9.43 KB, 下载次数: 12

回复

使用道具 举报

 楼主| 发表于 2014-2-12 14:36 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2014-2-12 14:37 | 显示全部楼层
liu398214264 发表于 2014-2-12 11:57
如果表一中每个户主都对应有序号的话就很好办,直接用vlookup函数就可以。如果没有对应序号就在序号列用l ...

还是弄不好啊
回复

使用道具 举报

发表于 2014-2-12 15:28 | 显示全部楼层
2014新手 发表于 2014-2-12 14:37
还是弄不好啊

你先说表1中户主前面是不是都有不同的序号?是的话发到我邮箱liu398214264@163.com
回复

使用道具 举报

 楼主| 发表于 2014-2-12 15:36 | 显示全部楼层
liu398214264 发表于 2014-2-12 15:28
你先说表1中户主前面是不是都有不同的序号?是的话发到我邮箱

有序号

排序00.zip

2.56 KB, 下载次数: 6

有序号

回复

使用道具 举报

发表于 2014-2-12 17:34 | 显示全部楼层
看看行不行

排序00.rar

3.42 KB, 下载次数: 5

回复

使用道具 举报

 楼主| 发表于 2014-2-12 23:18 | 显示全部楼层
不好意思,看不懂啊
回复

使用道具 举报

发表于 2014-2-13 13:17 | 显示全部楼层    本楼为最佳答案   
本帖最后由 baksy 于 2014-2-13 13:26 编辑

复制以下表格。
其中,A~E列是基础数据,G~J列是楼主的筛选条件,L~O列是公式结果。
L2=IF(ROW()=2,1,IF(SUM(COUNTIF($E$2:$E$14,$J$2:INDIRECT("J"&COUNT($L$1:L1)+1)))=ROW()-2,MAX($L$1:L1)+1,""))
M2=INDEX($B$1:$B$14,MATCH(O2,$E$1:$E$14,0)+COUNTIF($O$1:O1,O2))
N2=INDEX($D$1:$D$14,MATCH(O2,$E$1:$E$14,0)+COUNTIF($O$1:O1,O2))
O2=IF(L2<>"",VLOOKUP(L2,$G$2:$J$5,4,0),IF(COUNTIF($E$2:$E$14,O1)=COUNTIF($O$1:O1,O1),"",O1))
其中L2是数组公式,三键回车。

序号
家庭
身份证号
姓名
 
序号
家庭
姓名
 
序号
家庭
姓名
 
1
户主
22010600000333
王一
户主王一
1
户主
王一
户主王一
1
户主
王一
户主王一
 
第一成员
 
张明
户主王一
2
户主
洪红
户主洪红
 
第一成员
张明
户主王一
 
第二成员
 
黎明
户主王一
3
户主
李立
户主李立
 
第二成员
黎明
户主王一
2
户主
22010600000338
李恒
户主李恒
4
户主
李恒
户主李恒
2
户主
洪红
户主洪红
 
第一成员
 
芳芳
户主李恒
 
第一成员
张晓
户主洪红
 
第二成员
 
白华
户主李恒
 
第二成员
王方
户主洪红
 
第三成员
 
陈一
户主李恒
3
户主
李立
户主李立
3
户主
22010600000327
洪红
户主洪红
 
第一成员
李华
户主李立
 
第一成员
 
张晓
户主洪红
 
第二成员
刘明
户主李立
 
第二成员
 
王方
户主洪红
4
户主
李恒
户主李恒
4
户主
22010600000384
李立
户主李立
 
第一成员
芳芳
户主李恒
 
第一成员
 
李华
户主李立
 
第二成员
白华
户主李恒
 
第二成员
 
刘明
户主李立
 
第三成员
陈一
户主李恒
回复

使用道具 举报

 楼主| 发表于 2014-2-13 15:07 | 显示全部楼层
baksy 发表于 2014-2-13 13:17
复制以下表格。
其中,A~E列是基础数据,G~J列是楼主的筛选条件,L~O列是公式结果。
L2=IF(ROW()=2,1,IF( ...

已经解决了,谢谢了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-6 10:41 , Processed in 0.552253 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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