VlookUp给出每个月的最后一个值

时间:2016-06-24 19:23:51

标签: excel

您好我有这个Excel文件:

    Date    GBP_S(t)  A
27/12/88    1,80400
28/12/88    1,78900
29/12/88    1,78950
30/12/88    1,80850
 2/01/89    0,00000
 3/01/89    1,82250
 4/01/89    1,80700
 5/01/89    1,79700
 6/01/89    1,78000
 9/01/89    1,76360
10/01/89    1,76370
11/01/89    1,78100
12/01/89    1,78400
13/01/89    1,77870
16/01/89    0,00000
17/01/89    1,76800
18/01/89    1,75450
19/01/89    1,75000
20/01/89    1,76850
23/01/89    1,77400
24/01/89    1,76770
25/01/89    1,77100
26/01/89    1,77350
27/01/89    1,75800
30/01/89    1,76180
31/01/89    1,75000
 1/02/89    1,75350
 2/02/89    1,75080
 3/02/89    1,74150
 6/02/89    1,73270
 7/02/89    1,74250
 8/02/89    1,74330
 9/02/89    1,75480
10/02/89    1,75430
13/02/89    1,74950
14/02/89    1,76850
15/02/89    1,77330
16/02/89    1,77080
17/02/89    1,77600
20/02/89    0,00000
21/02/89    1,75020
22/02/89    1,75050
23/02/89    1,76000
24/02/89    1,75300
27/02/89    1,74480
28/02/89    1,74400
 1/03/89    1,72400
 2/03/89    1,72380
 3/03/89    1,72300
 6/03/89    1,72200
 7/03/89    1,72170
 8/03/89    1,71970
 9/03/89    1,71750
10/03/89    1,71550
13/03/89    1,71150
14/03/89    1,72720
15/03/89    1,71900
16/03/89    1,71790
17/03/89    1,71300
20/03/89    1,71030
21/03/89    1,72000
22/03/89    1,72280
23/03/89    1,72180
24/03/89    1,71900
27/03/89    1,71000
28/03/89    1,68800
29/03/89    1,68860
30/03/89    1,68750
31/03/89    1,68520
 3/Apr/89   1,68600
 ...

我正在尝试构建一个简单的VlookUp函数,但它无法正常工作。 我想要一个procv函数,它给我第三列(A)每个月的最后一个值o Date列。

所以:A1 = 1,80850; A2 = 1,75000;等等...

有任何帮助吗? 非常感谢。

1 个答案:

答案 0 :(得分:3)

我个人会在这个例子中使用辅助列:

在C2中提出以下内容:

=IF(MONTH($A2)<>MONTH($A3),MAX($C$1:$C1)+1,"")

并复制数据的长度

这将在与每个月的最后一个记录日相同的行上增加一个数字。

然后你可以在INDEX / MATCH中使用该列来返回每个月末的值:

=IFERROR(INDEX(B:B,MATCH(ROW(1:1),C:C,0)),"")

然后复制,直到你得到空单元格。

enter image description here

如果你想要一个公式:

=IFERROR(INDEX($B$2:$B$194,AGGREGATE(15,6,(ROW($A$2:$A$193)-1)/(MONTH($A$2:$A$193)<>MONTH($A$3:$A$194)),ROW(1:1))),"")

它使用上表中的数据。这有点难以理解。