Excel精英培训网

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

[已解决]根据相同日期查找引用相对应数据

[复制链接]
发表于 2015-4-17 20:33 | 显示全部楼层 |阅读模式
根据相同日期查找引用相对应数据
最佳答案
2015-4-17 21:49
本帖最后由 tgydslr 于 2015-4-17 21:50 编辑

如下图,A3=IFERROR(INDIRECT(INDEX({"故障统计!","维护统计!"},INT(SMALL(IF(INT(N(INDIRECT({"故障统计","维护统计"}&"!B"&ROW($2:$99))))=$A$1,{1,2}*100+ROW($2:$99)),ROW(A1))%))&"r"&MOD(SMALL(IF(INT(N(INDIRECT({"故障统计","维护统计"}&"!B"&ROW($2:$99))))=$A$1,{1,2}*100+ROW($2:$99)),ROW(A1)),100)&"c"&COLUMN(),),"")三键横拉下拉 QQ截图20150417214701.png
设定b:c列单元格格式"e-m-d h:mm"

1111.zip

20.75 KB, 下载次数: 28

根据相同日期查找引用相对应数据

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-4-17 20:54 | 显示全部楼层
  1. Sub x()
  2. Dim ar, br, x%, cr(1 To 65000, 1 To 7), r%, l%
  3. ar = Sheets("故障统计").Range("a1").CurrentRegion
  4. br = Sheets("维护统计").Range("a1").CurrentRegion
  5.   For x = 2 To UBound(ar)
  6.     If CDate(Format(ar(x, 2), "yyyy/m/d")) = [a1] Then
  7.       r = r + 1
  8.         For l = 1 To 7
  9.           cr(r, l) = ar(x, l)
  10.         Next
  11.     End If
  12.   Next
  13.   For x = 2 To UBound(br)
  14.      If CDate(Format(br(x, 2), "yyyy/m/d")) = [a1] Then
  15.        r = r + 1
  16.         For l = 1 To 7
  17.           cr(r, l) = br(x, l)
  18.         Next
  19.      End If
  20.   Next
  21. Range("a3:g65000") = ""
  22. Range("a3").Resize(r, 7) = cr
  23. MsgBox "汇总完毕"
  24. End Sub
复制代码

1111.rar

30.31 KB, 下载次数: 14

回复

使用道具 举报

 楼主| 发表于 2015-4-17 21:01 | 显示全部楼层
额,,,好强。。。没用过宏~~~谢谢
麻烦有没有函数公式的呀,,
回复

使用道具 举报

发表于 2015-4-17 21:12 | 显示全部楼层
函数,估计得借助辅助列.
2楼代码优化下
  1. Sub x()
  2. Dim ar, br, x%, cr(1 To 65000, 1 To 7), r%, l%,s%
  3. For s = 1 To 2
  4.   ar = Sheets(s).Range("a1").CurrentRegion
  5.   For x = 2 To UBound(ar)
  6.     If CDate(Format(ar(x, 2), "yyyy/m/d")) = [a1] Then
  7.       r = r + 1
  8.         For l = 1 To 7
  9.           cr(r, l) = ar(x, l)
  10.         Next
  11.     End If
  12.   Next
  13. Next
  14. Range("a3:g65000") = ""
  15. Range("a3").Resize(r, 7) = cr
  16. MsgBox "汇总完毕"
  17. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2015-4-17 21:14 | 显示全部楼层
恩,谢谢
回复

使用道具 举报

发表于 2015-4-17 21:49 | 显示全部楼层    本楼为最佳答案   
本帖最后由 tgydslr 于 2015-4-17 21:50 编辑

如下图,A3=IFERROR(INDIRECT(INDEX({"故障统计!","维护统计!"},INT(SMALL(IF(INT(N(INDIRECT({"故障统计","维护统计"}&"!B"&ROW($2:$99))))=$A$1,{1,2}*100+ROW($2:$99)),ROW(A1))%))&"r"&MOD(SMALL(IF(INT(N(INDIRECT({"故障统计","维护统计"}&"!B"&ROW($2:$99))))=$A$1,{1,2}*100+ROW($2:$99)),ROW(A1)),100)&"c"&COLUMN(),),"")三键横拉下拉 QQ截图20150417214701.png
设定b:c列单元格格式"e-m-d h:mm"
回复

使用道具 举报

发表于 2015-4-17 21:53 | 显示全部楼层
本帖最后由 tgydslr 于 2015-4-17 21:57 编辑

如果不想设定格式(常规)的话外套text
==TEXT(IFERROR(INDIRECT(INDEX({"故障统计!","维护统计!"},INT(SMALL(IF(INT(N(INDIRECT({"故障统计","维护统计"}&"!B"&ROW($2:$99))))=$A$1,{1,2}*100+ROW($2:$99)),ROW(A1))%))&"r"&MOD(SMALL(IF(INT(N(INDIRECT({"故障统计","维护统计"}&"!B"&ROW($2:$99))))=$A$1,{1,2}*100+ROW($2:$99)),ROW(A1)),100)&"c"&COLUMN(),),""),IF(OR(COLUMN()={2,3}),"e-m-d h:mm","0.##;0;0;@"))
回复

使用道具 举报

 楼主| 发表于 2015-4-17 21:55 | 显示全部楼层
额。我晕,更加复杂。。。。谢谢了!~这么辛苦……
回复

使用道具 举报

发表于 2015-4-17 21:58 | 显示全部楼层
1111.rar (22.3 KB, 下载次数: 15)
回复

使用道具 举报

发表于 2015-4-17 21:59 | 显示全部楼层
dt7155 发表于 2015-4-17 21:55
额。我晕,更加复杂。。。。谢谢了!~这么辛苦……

工作表名称是数字的话会好办些
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-13 04:56 , Processed in 0.305088 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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