如果vlookup在2个date之间,则返回更早的date
我有一个date列表,当人们提交他们想要出售的东西,我有一个卖方窗口,这是每两周,卖方可以真正出售。
我想与所有的date列表与销售窗口列表(销售Windows在13.07和27.07),但简单的查找(使用TRUE)返回给我这样的事情:
卖家
提交| 销售窗口(使用卖家窗口列表中的查找)
13.07.2016 | 相应的卖出窗口应该是13.07。 这里
14.07.2016 | 但27.07。 从这里。
2016年7月14日
2016年7月14日
2016年7月14日
2016年7月18日
2016年7月18日
2016年7月20日
2016年7月20日
2016年7月20日
2016年7月21日
2016年7月21日
2016年7月22日
25.07.2016 | 但是,vlookup返回13.07。 直到这里和
27.07.2016 | 27.07。 作为从这个date开始的销售窗口。
2016年7月28日
2016年7月28日
有谁知道我可以解决这个问题?
这是我的想法。
如果完全匹配成功(例如,13/7/16),则从B列的匹配行中获取结果。
如果完全匹配失败(例如对于14/7/16),请进行不精确的匹配,并从B列的下一行获取结果。
=INDEX($B$2:$B$5,IFERROR(MATCH(A2,$B$2:$B$5,0),MATCH(A2,B$2:$B$5,1)+1))
只是为了完整性,这里是一个VLOOKUP公式
=VLOOKUP(A2,$B$2:$B$5,1,TRUE)+14*(A2>VLOOKUP(A2,$B$2:$B$5,1,TRUE))
另一个使用MOD的公式
=IF(MOD(A2-$B$2,14),A2+14-MOD(A2-$B$2,14),A2)
但最后两个假设出售date之间的14天不变的差异。 第一个公式更灵活,因为它可以允许公共假期等,如果销售date可以作为问题中陈述的清单。
您可以将MATCH
函数与INDEX
函数结合使用来查找值,这将允许您从构成MATCH
函数一部分的match_type
参数中受益。
以下是关于match_type
参数的一些信息:
匹配types信息
- 如果match_type为1或省略,MATCH将查找小于或等于lookup_value的最大值。 lookup_array参数中的值必须按照升序排列,例如:…- 2,-1,0,1,2,…,AZ,FALSE,TRUE。
- 如果match_type为0,则MATCH查找与lookup_value完全相同的第一个值。 lookup_array参数中的值可以按任意顺序排列。
- 如果match_type为-1,则MATCH将查找大于或等于lookup_value的最小值。 lookup_array参数中的值必须按降序排列,例如:TRUE,FALSE,ZA,… 2,1,0,-1,-2,…依此类推。
(来源: https : //support.office.com/en-gb/article/MATCH-function-e8dffd45-c762-47d6-bf89-533f4a37673a )
这意味着只要您的lookup_array
(销售窗口)按降序排列,就可以使用-1
match_type
!
公式看起来像这样:
=INDEX($C$2:$C$3,MATCH(A1,$C$2:$C$3,-1))
如果您的销售窗口位于C2:C3
,您的提交date位于A列,公式位于B列,例如:
| A | B | C | |------------+------------+-----------------| 1| Submitting | Lookup | Selling Windows | |------------+------------+-----------------| 2| 13/07/2016 | 13/07/2016 | 27/07/2016 | 3| 14/07/2016 | 27/07/2016 | 13/07/2016 | 4| 15/07/2016 | 27/07/2016 | | 5| 16/07/2016 | 27/07/2016 | | 6| 17/07/2016 | 27/07/2016 | | 7| 18/07/2016 | 27/07/2016 | | 8| 19/07/2016 | 27/07/2016 | | 9| 20/07/2016 | 27/07/2016 | | 10| 21/07/2016 | 27/07/2016 | | 11| 22/07/2016 | 27/07/2016 | | 12| 23/07/2016 | 27/07/2016 | | 13| 24/07/2016 | 27/07/2016 | | 14| 25/07/2016 | 27/07/2016 | | 15| 26/07/2016 | 27/07/2016 | | 16| 27/07/2016 | 27/07/2016 | |
假设你的date是date格式 – 在你的vlookup从date减1。 你的vlookup将提前2周。
要改正这个,你可以在vlookup结果中加14。
= VLOOKUP(D4-1,$ F $ 3:$ F $ 6,1)14
如果您的清单date在D栏中,而您的销售date在F栏中