Excel,基于date范围的最大值

我有一个Excel电子表格,有两列,第一个是date,第二个是值。 date跨越几年。 我想写一个函数来获取每年的最大值。

例如,在以下数据集中:2009年6月3日2009年6月3日5 2010年1月1日7 7日2010年1月1日2013年5月1日2013年5月2日77

2009年的函数将返回值3 2010年的函数将返回值7 2013年的函数将返回值77

所有的date在列A中所有的值在列E中在列JI中有需要年份的列表,即J1 = 2009,J2 = 2010,J3 = 2011等

每年的function位于J栏对应年份的K栏中,即2009年的最大值在单元格K1中,2010年的最大值在K2单元格中等。

我相信这个函数应该看起来像这样:= MAX(某种types的函数给了我每年的date范围)

感谢所有的帮助

您可以使用:
=MAX(IF(YEAR($A$2:$A$9)=J1,$E$2:$E$9,0))
Array Formula同时按下Ctrl + Shift + Enter
你可以拖动它
$ A $ 2:$ A $ 9绝对引用的Date $列将其更改为最后一行
$ E $ 2:$ E $ 9这个值的列将它改为最后一行
J1是新列中的第一个date,拖动时会自动更改
如果将date的年份testing到J1并返回相应的值

我们来考虑一下这个例子:

 +---+------------+------+-------+-------------+ | | A | B | C | D | +---+------------+------+-------+-------------+ | 1 | Date | Year | Value | Max of year | | 2 | 03/06/2009 | 2009 | 3 | 5 | | 3 | 05/06/2009 | 2009 | 5 | 5 | | 4 | 01/01/2010 | 2010 | 7 | 7 | | 5 | 07/07/2010 | 2010 | 1 | 7 | | 6 | 01/04/2013 | 2013 | 12 | 77 | | 7 | 02/05/2013 | 2013 | 77 | 77 | +---+------------+------+-------+-------------+ 

你有两个select。

第一个解决scheme(最简单)

添加一个名为YEAR的列,您可以在其中计算列A的每个单元格的年份。然后,使用列C的最大值构build一个数据透视表。

第二个解决scheme(最难)

使用matrixfunction。 添加计算年份的列B. 然后在单元格D2中写入以下内容: =MAX(IF(B:B=B2,C:C)) ,然后按CTRL + SHIFT + ENTER 。 该公式将被转换成matrix函数,如= {=MAX(SE(B:B=B7;C:C))} 。 现在,您可以将单元格D2拖到列的末尾(示例中为D7)。 您也可以使用我的第二个解决scheme与YEAR函数的组合,就像@Yass所回答的那样。

我设法为自己回答这个问题。 如果我将与date和值相对应的列定义为数组,那么我可以使用以下函数:

 =MAX(IF(Transaction_Date<=DATE(J1,12,31),IF(Transaction_Date>=DATE(J1,1,1),Account_Balance)))