Excel精英培训网

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

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

[复制链接]
发表于 2012-3-10 14:00 | 显示全部楼层 |阅读模式
本帖最后由 深蓝色的海洋 于 2012-3-11 14:01 编辑


根据相同日期查找引用相对应数据
已更新
plan.rar (13.94 KB, 下载次数: 201)
发表于 2012-3-10 14:47 | 显示全部楼层
=INDEX('数据源(内箱)'!A:A,SMALL(IF('数据源(内箱)'!$E$4:$E$23=$E$3,ROW($A$4:$A$23),4^8),ROW(A1)))&""
数组公式,下拉右拉
plan.rar (13.92 KB, 下载次数: 143)
回复

使用道具 举报

 楼主| 发表于 2012-3-11 14:02 | 显示全部楼层
chen_pinghui 发表于 2012-3-10 14:47
=INDEX('数据源(内箱)'!A:A,SMALL(IF('数据源(内箱)'!$E$4:$E$23=$E$3,ROW($A$4:$A$23),4^8),ROW(A1))) ...

不好意思,这个是我代我同事问的,可能之前没问清楚,她是想要引用一个时间段的,不是一天的,附件已经更新了。
回复

使用道具 举报

发表于 2012-3-11 14:38 | 显示全部楼层
照二楼稍加改动即可,另外为不显示0值与错误值在条件格式里设置了一下,请看是否达到了楼主的要求。

plan.rar

14.98 KB, 下载次数: 93

回复

使用道具 举报

发表于 2012-3-12 01:03 | 显示全部楼层
本帖最后由 vonnour 于 2012-3-12 01:28 编辑

哈哈,刚好我前几天在EH论坛上帮别人做了一个类似的表格。原理差不多。
看看这是不是你要的效果。
为了实现功能,我在数据源表格里添加了第一列:数据编号。
还有为了写公式方便,也为了方便维护,我用了多个名称定义。不过直接引用也可以,但是不好理解,而且公式也比较长。

修改数据容量可以在名称定义里修改引用区域的长度。
不过这种功能还是比较适合用VBA实现,用公式的话,数据多了,速度会慢。
箱号记录查询(数组公式):
  1. =IF(ROW(1:1)>满足条件记录数,"",VLOOKUP(LARGE((数据源完工日>=效果!$G$2)*(数据源完工日<=效果!$H$2)*数据源编号,满足条件记录数+1-ROW(1:1)),数据源表,2,0))
复制代码
货物,重量,净重,完工日期等类似,只是更改vlookup的“列序数”参数。
说明:ROW(1:1) 是为了向下拖动时能变动的变量。
寻找满足条件的数据,并获取相应数据编号。large只是从一个排序函数。
  1. LARGE((数据源完工日>=效果!$G$2)*(数据源完工日<=效果!$H$2)*数据源编号,满足条件记录数+1-ROW(1:1))
复制代码

满足条件的记录数(数组公式):
  1. =SUM((数据源完工日>=效果!$G$2)*(数据源完工日<=效果!$H$2))
复制代码
为了按原来的记录顺序显示查找出的记录,用了以下公式。
  1. 满足条件记录数+1-ROW(1:1)
复制代码



RE-Plan.png

RE-Plan.zip (45.52 KB, 下载次数: 89)
回复

使用道具 举报

发表于 2012-3-12 08:02 | 显示全部楼层
vonnour 发表于 2012-3-12 01:03
哈哈,刚好我前几天在EH论坛上帮别人做了一个类似的表格。原理差不多。
看看这是不是你要的效果。
为了实 ...

在EH论坛做出来的还这么复杂呀?
a3输入数组公式:=INDEX('数据源(内箱)'!A:A,SMALL(IF(('数据源(内箱)'!$E$4:$E$23>=$F$2)*('数据源(内箱)'!$E$4:$E$23<=$G$2),ROW($4:$23),4^8),ROW(A1)))
下拉右拉

回复

使用道具 举报

发表于 2012-3-12 09:30 | 显示全部楼层
chen_pinghui 发表于 2012-3-12 08:02
在EH论坛做出来的还这么复杂呀?
a3输入数组公式:=INDEX('数据源(内箱)'!A:A,SMALL(IF(('数据源( ...

呵呵,不好意思,我是菜鸟而已。来这边是为了下载VBA视频教程的。
能不能加我Q,我向你请教。我看你才是高手。
回复

使用道具 举报

发表于 2012-3-12 09:32 | 显示全部楼层
晕,这边的等级怎么这么严格,初级用户加不了好友,也发不了短消息。
回复

使用道具 举报

发表于 2012-3-12 09:36 | 显示全部楼层
rinyxa 发表于 2012-3-11 14:38
照二楼稍加改动即可,另外为不显示0值与错误值在条件格式里设置了一下,请看是否达到了楼主的要求。

能加我q吗?看你是高手能请教吗?
回复

使用道具 举报

发表于 2012-3-12 11:05 | 显示全部楼层
chen_pinghui 发表于 2012-3-12 08:02
在EH论坛做出来的还这么复杂呀?
a3输入数组公式:=INDEX('数据源(内箱)'!A:A,SMALL(IF(('数据源( ...

其实原理跟你的差不多,我用vlookup必须要有一个编号,不然查不到重复数据。index我用的比较少。
你用if产生的数组,把不符合条件的编号都设为了最大,所以你只要用small就能按顺序列出数据。但是我的数组中无效数据值设为false即0,所以我要顺序显示就必须要有一个辅助变量,如果仅仅用large来显示的话,记录是倒序的。
你的index最后一个参数用ROW(A1),这个当表格发生删除行列、合并单元格的时候会出错。我以前遇到过,所以我用row(1:1).
我在引用其他表格的时候经常用定义名称,为了明确意义,有时候定义的名称可能会长一点。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-23 23:39 , Processed in 0.253094 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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