我想将数据中的最后一个条目抵消一周。例如,我刚刚创建了这个示例数据:
day value
1 4
2 3
3 5
4 6
5 1
6 3
7 9
8 5
要查找数据集中的最后一个条目,我使用查找函数:
=LOOKUP(9.99E+307,b1:b10)
将返回值5
。 (如果表示法不熟悉,9.99E+307
是可以用Excel编写的最大数字。)
我希望将此值与上周的值进行比较,从而将最后一个条目偏移7.我看到OFFSET要求: offset(reference,rows,cols)但使用:
=OFFSET(LOOKUP(9.99E+307,b1:b10),-7,0)
似乎不起作用(它返回错误)。
可能是什么问题?
答案 0 :(得分:2)
@ user3561813解释了原因,解决方案可能是:
=INDEX(B:B,MATCH(1E+100,B:B)-7)
MATCH找到ColumnB中最后一个条目的位置(行号),-7
逐步增加七行,INDEX在ColumnB中找到该行的内容。
答案 1 :(得分:2)
您还可以使用单个LOOKUP
函数,其中“返回向量”偏移7行,例如
=LOOKUP(9.99E+307,B8:B100,B1:B93)
答案 2 :(得分:1)
Reference
是OFFSET
函数是指一个Range对象(一个单元格)。 Lookup
函数的结果是一个数值,在这种情况下为5.您不能OFFSET
一个数值。
你考虑过使用VBA吗?
答案 3 :(得分:1)
为什么不更改查找以查找列表中的最后一天?
此公式将返回最后一天的值(上面数据中为8):
=LOOKUP(9.99E+307,A1:A10)
然后,您可以使用此公式返回当天的最后一个值(上面的数据中为5):
=VLOOKUP(LOOKUP(9.99E+307,A1:A10),A1:B10,2,FALSE)
如果您希望获得7天前的值,只需从LOOKUP公式的结果中减去7,就像这样(将在上面的数据中返回4天1的值):
=VLOOKUP(LOOKUP(9.99E+307,A1:A10)-7,A1:B10,2,FALSE)