Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 12586|回复: 23

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

[复制链接]
发表于 2014-2-12 10:01 | 显示全部楼层 |阅读模式
我按自定义排序的方法排序了,但是一次只能排80个家庭,我有400多个家庭,能有啥简单的方法吗
最佳答案
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
李立
户主李立
 
第一成员
芳芳
户主李恒
 
第一成员
 
李华
户主李立
 
第二成员
白华
户主李恒
 
第二成员
 
刘明
户主李立
 
第三成员
陈一
户主李恒

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

2.67 KB, 下载次数: 87

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

使用道具 举报

发表于 2014-2-12 10:20 | 显示全部楼层
筛选出A列不为空值的不就可以了吗
回复

使用道具 举报

 楼主| 发表于 2014-2-12 10:22 | 显示全部楼层
liu398214264 发表于 2014-2-12 10:20
筛选出A列不为空值的不就可以了吗

必须按表2的顺序排
回复

使用道具 举报

发表于 2014-2-12 10:57 | 显示全部楼层
本帖最后由 蓝粆 于 2014-2-12 10:59 编辑

表2啥排序啊?
回复

使用道具 举报

发表于 2014-2-12 10:57 | 显示全部楼层
表2的排序有规律吗?
回复

使用道具 举报

发表于 2014-2-12 11:26 | 显示全部楼层
看不懂= =
回复

使用道具 举报

发表于 2014-2-12 11:39 | 显示全部楼层
模拟一下排
好的结果
回复

使用道具 举报

发表于 2014-2-12 11:57 | 显示全部楼层
2014新手 发表于 2014-2-12 10:22
必须按表2的顺序排

如果表一中每个户主都对应有序号的话就很好办,直接用vlookup函数就可以。如果没有对应序号就在序号列用lookup函数,再在其他列用vlookup函数
回复

使用道具 举报

发表于 2014-2-12 13:08 | 显示全部楼层
  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.             If Cells(Y + 1, 1) <> "" Then Exit For
  15.         Next
  16.     Next
  17. End Sub
复制代码

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

7.99 KB, 下载次数: 41

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 14:39 , Processed in 0.574659 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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