0

我的用户保留数据如下所示:

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(这是第二个“days=1”行)。有没有办法配置它来做到这一点,或者是否有另一个功能可以满足我的需要?

4

1 回答 1

2

不使用 using 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))

这将完全相同,只是您有更多的灵活性并且不需要包含“查找数据中的第二列”......

于 2013-02-25T20:50:10.667 回答