我的用户保留数据如下所示:
signup_date days retention
2/24/13 0 1
2/23/13 0 1
2/23/13 1 0.4855
2/22/13 0 1
2/22/13 1 0.4727
2/22/13 2 0.3647
2/21/13 0 1
2/21/13 1 0.5135
2/21/13 2 0.3879
2/21/13 3 0.3463
2/20/13 0 1
2/20/13 1 0.5402
2/20/13 2 0.4166
2/20/13 3 0.3615
2/20/13 4 0.3203
2/19/13 0 1
2/19/13 1 0.5317
2/19/13 2 0.4348
2/19/13 3 0.366
2/19/13 4 0.3077
第二列(“天”)表示自注册日期起经过的天数,保留时间基于当天和signup_date(因为保留可能会随时间而变化)。我需要进行预测,不幸的是我(因为我更喜欢以编程方式执行此操作),我的老板想要他们在Excel中。因此,我尝试使用Lookup()函数查找保留列中与某个注册日期过去的“天数”相匹配的最新值。
无论如何,这就是问题的前奏,如果我输入公式,那就是现在:
=lookup(1,B:B,C:C)
其中B:B是“天”而C:C是保留,它不一定返回数据集中的第一个(即最近的)保留值。例如,在这种情况下,我需要单元格为0.4855,但公式可能会给我0.4727(这是第二个“天= 1”行)。是否有任何方法可以将其配置为执行此操作,还是有其他功能可以执行我需要的操作吗?
答案 0 :(得分:2)
不使用LOOKUP
,而是使用VLOOKUP
函数 - 它有另一个参数指定数据不按顺序排列:
=VLOOKUP(1,$B:$C,2,0)
这将返回您的范围B:B
第二列中的条目,其中" 1"在您的范围的第一列中找到。不要忘记最后的0
,因为这会告诉Excel逐行搜索(相对于二分搜索为LOOKUP
或省略参数会这样做。)
替代:
VLOOKUP
是这种情况的简单公式和默认值。更灵活的方法是使用INDEX/MATCH
:
=INDEX($C:$C,MATCH(1,$B:$B,0))
这将完全相同,只是你有更多的灵活性,并且不需要在查找数据中包含第二列" ...
HTH!