vlookup:lookup_value作为date范围
以下情况:
工作表1提供了两个单元格中的date范围:
Beginning____End 1.2013______2.2013 2.2013______3.2013...
工作表2提供了具体的date和值
3.1.2013_____500$ 5.2.2013_____700$...
我现在要做的是在Sheet 1的正确date范围旁插入Sheet 2中的Values。请注意,每个date范围只有一个date(也就是一个值)。
1.2013___ 2.2013___500$ 2.2013___ 3.2013___700$
通常在这种情况下,我会使用Vlookup并匹配date,但这是行不通的,因为我将不得不把值范围作为lookup_value。
我会非常感谢你的帮助。 这个问题似乎很容易,但我似乎无法找出解决scheme! 我试图应用一些解决scheme,我在这里和其他网站上find类似的问题,但我还没有find一个解决scheme。
谢谢,最好的问候!
我不确定是否有其他select,但这是我想出来的:
=IF(VLOOKUP(C3,Sheet1!$B$3:$C$11,1)>=B3,VLOOKUP(C3,Sheet1!$B$3:$C$11,2),0)
首先需要注意的是,你有一个“浮动”或者是未扩展的范围,这会使你的LOOKUP()
工作起来,但是最终会导致很多错误的值。
对于公式,这里有一点描述:
VLOOKUP(C4,Sheet1!$B$3:$C$11,1)>=B4
这将检查End of Period
是否等于或等于我们正在查找的Sheet1
的date。 在月份跳过的情况下,这一点是照顾它的。
VLOOKUP(C3,Sheet1!$B$3:$C$11,2)
查找相应的date值。
我在这里更新你的文件。
只要您在Sheet2上的date按升序排列,您仍然可以使用VLOOKUP。 如果查看VLOOKUP的帮助,将会看到如果省略range_lookup
参数或TRUE,则函数将匹配等于search值的第一个值或小于search值的最大值 。 因此,在您的示例中,如果Sheet1上的单元格B2包含2.2013
则VLOOKUP(Sheet1!B2, Sheet2!$A$1:$B2)
将返回500,因为3.1.2013
是search列中小于search值的最后一个值(Excel将month.yeardate值等于1.month.year)。
如果每个月在Sheet2上总是有一个值 – 也就是说,它从不会从5.2.2013跳到7.4.2013,那么VLOOKUP本身就应该做你所需要的。 如果在Sheet2上有时会丢失几个月份,则需要限制VLOOKUP函数的search范围,以防止(在此示例中) 4.2013
结束date返回5.2.2013
值。 您可以使用OFFSET和MATCH函数为VLOOKUP的table_array
构build一个范围,该范围从您要查找的date范围的开始处开始。 在MATCH函数中使用1的match_type
参数,使其与VLOOKUP的行为相同。