Excel精英培训网

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

[已解决]从数据源中查找符合条件的项次汇总

[复制链接]
发表于 2015-9-22 09:31 | 显示全部楼层 |阅读模式
工作表<结果>工作表<数据源>
结果的A列为站点名称,B列为目标时间
从数据源中的A站查找对应站点的C列进站时间,统计现在的时间减去进站时间大于目标时间的非重复批次的项次
谢谢。
最佳答案
2015-10-23 13:27
请看附件。

在滞批次.rar

24.36 KB, 下载次数: 3

发表于 2015-9-22 10:21 | 显示全部楼层
  1. Sub tt()
  2.     zd = CDate([e9])   '指定时间
  3.     arr = Sheets("数据源").[a1].CurrentRegion
  4.     brr = Sheets("需求结果").Range("a5:c16")
  5.     crr = arr: n = 1  '滞留批次
  6.     Set d = CreateObject("scripting.dictionary")
  7.     Set d1 = CreateObject("scripting.dictionary")
  8.     Set d2 = CreateObject("scripting.dictionary")
  9.     For i = 1 To UBound(brr)     '站点和目标时间的关系
  10.         d1(brr(i, 1)) = brr(i, 2)
  11.     Next
  12.     For i = 2 To UBound(arr)     '站点和目标时间的关系
  13.         If d1.exists(arr(i, 1)) Then  '有目标时间的站点
  14.             zz = 24 * (zd - CDate(arr(i, 3))) '在制时间
  15.             If zz >= d1(arr(i, 1)) Then    '如果在制时间大于目标时间
  16.                 x = arr(i, 1) & arr(i, 2)
  17.                 If Not d2.exists(x) Then   '站点+批次去重(相同的只计一次)
  18.                     d2(x) = ""
  19.                     d(arr(i, 1)) = d(arr(i, 1)) + 1
  20.                     n = n + 1
  21.                     For j = 1 To UBound(arr, 2)
  22.                         crr(n, j) = arr(i, j)
  23.                     Next
  24.                 End If
  25.             End If
  26.         End If
  27.     Next
  28.     For i = 1 To UBound(brr)     '根据站点求出超时批次数
  29.         brr(i, 3) = d(brr(i, 1))
  30.     Next
  31.     Sheets("需求结果").Range("c5:c16").ClearContents
  32.     Sheets("需求结果").Range("a5:c16") = brr
  33.     Sheets("滞留批次").Cells.ClearContents
  34.     Sheets("滞留批次").[a1].Resize(n, UBound(crr, 2)) = crr
  35. End Sub
复制代码
回复

使用道具 举报

发表于 2015-9-22 10:22 | 显示全部楼层
请看附件。指定时间放在E9单元格。

在滞批次.rar

36.46 KB, 下载次数: 14

回复

使用道具 举报

 楼主| 发表于 2015-9-22 14:01 | 显示全部楼层
grf1973 发表于 2015-9-22 10:22
请看附件。指定时间放在E9单元格。

非常谢谢,后面连接数据库和修改的我自己写
回复

使用道具 举报

 楼主| 发表于 2015-9-28 17:24 | 显示全部楼层
grf1973 发表于 2015-9-22 10:22
请看附件。指定时间放在E9单元格。

你好,如果我在加个在滞时间最久的批次和对应的滞留时间。
回复

使用道具 举报

 楼主| 发表于 2015-10-9 09:56 | 显示全部楼层
如果我在第4列和第五列增加在制时间最长的项,怎么写,谢谢
回复

使用道具 举报

 楼主| 发表于 2015-10-9 09:56 | 显示全部楼层
grf1973 发表于 2015-9-22 10:22
请看附件。指定时间放在E9单元格。

如果我在第4列和第五列增加在制时间最长的项,怎么写,谢谢
回复

使用道具 举报

 楼主| 发表于 2015-10-9 09:56 | 显示全部楼层
滞留批次 时间
回复

使用道具 举报

 楼主| 发表于 2015-10-21 22:58 | 显示全部楼层
grf1973 发表于 2015-9-22 10:22
请看附件。指定时间放在E9单元格。

你好,如果在对应行,找滞留时间最长的批和时间,要怎么加呢
回复

使用道具 举报

发表于 2015-10-22 10:03 | 显示全部楼层
是这样吗

在滞批次.rar

44.11 KB, 下载次数: 2

回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 17:26 , Processed in 0.485141 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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