1 项目编号 开始时间 结束时间
2 一 2007-2-10 2007-2-20
3 二 2007-3-10 2007-3-20
4 三 2007-4-10 2007-4-20
5 四 2007-5-10 2007-5-20
我想我输入2007年2月15日,则返回一,输入2007年3月19日,返回二,如何实现?
Excel 如果查找一段日期中的一个日期?
答案:2 悬赏:0 手机版
解决时间 2021-02-14 08:01
- 提问者网友:绫月
- 2021-02-13 10:43
最佳答案
- 五星知识达人网友:山有枢
- 2021-02-13 11:36
假如你的数据在A2:C5,
准备在E1输入日期,2007年2月15日
那么在F1输入公式:
=IF(SUMPRODUCT((B2:B5<$E$1)*(C2:C5>$E$1)),LOOKUP(E1,B2:B5,A2:A5),"不在时间任何一个时间段内")
则E1输入2007-2-15,F1返回一
E1输入2007-3-19,F1返回二
E1输入2007-2-22,返回"不在时间任何一个时间段内"
准备在E1输入日期,2007年2月15日
那么在F1输入公式:
=IF(SUMPRODUCT((B2:B5<$E$1)*(C2:C5>$E$1)),LOOKUP(E1,B2:B5,A2:A5),"不在时间任何一个时间段内")
则E1输入2007-2-15,F1返回一
E1输入2007-3-19,F1返回二
E1输入2007-2-22,返回"不在时间任何一个时间段内"
全部回答
- 1楼网友:不甚了了
- 2021-02-13 12:20
用最蠢的办法做的数组函数
假设你的所有日期都存在a列,a1为标题,日期从a2开始,最多999条记录;
你的价格列位于a列向右移k个单位,比如价格在c列,则k=2
把下面的公式粘贴到你的目标单元格中,
ok 编辑好公式内容,按ctrl+shift+enter可以看到结果(直接按enter得到的是错误值)
=offset(a1,match(min(datedif(a2:a1000,now()*column(a2:a1000),"d")),datedif(a2:a1000,now()*column(a2:a1000),"d"),0)-1,k,,)
解释:datedif(a2:a1000,now()*column(a2:a1000),"d")
datedif函数是计算两个日期之间相差多少时间的,一般不会同一天定两个价格,这里算的是相差多少天
对一组相差的天数取min值,此最小值在整个日期差数组中的位置可由match函数取得,减去1就是目标价码对于第一个价码的纵向偏移;
横向偏移是你表结构早已决定的,纵向偏移已求得,最后 用offset就可以取数了
记得公式完成后要按ctrl+shift+enter
sigh,我居然也开始玩数组函数了。。。。为这二十分我容易么。。。。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯