Excel,基于日期范围的最大值

时间:2017-04-14 11:23:20

标签: excel date

我有一个包含两列的Excel电子表格,第一列是日期,第二列是值。这些日期跨越了几年。我想写一个函数来检索每年的最大值。

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

2009年的功能将返回值3 2010年的功能将返回值7 2013年的功能将返回值77

所有日期都在A栏 所有值都在E列中 在第J栏中,我有一份所需年份清单,即J1 = 2009,J2 = 2010,J3 = 2011等。

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

我相信这个功能应该是这样的: = MAX(某种类型的函数,它给出了每年的日期范围)

感谢所有帮助

3 个答案:

答案 0 :(得分:0)

您可以使用:
=MAX(IF(YEAR($A$2:$A$9)=J1,$E$2:$E$9,0))
数组公式同时按 Ctrl + Shift + 输入 你可以拖动它 $ A $ 2:$ 9 $绝对引用的Date $列将其更改为您的最后一行
$ E $ 2:$ E $ 9值列将其更改为您的最后一行
J1是新列中的第一个日期,它会在拖动时自动更改 如果将测试Date的年份到J1并返回相应的值

答案 1 :(得分:0)

让我们考虑这个例子:

+---+------------+------+-------+-------------+
|   |     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          |
+---+------------+------+-------+-------------+

你有两个选择。

第一个解决方案(最简单)

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

第二种解决方案(最难)

使用矩阵功能。添加列B,计算年份。然后在单元格D2中写下以下内容:=MAX(IF(B:B=B2,C:C))并按 CTRL + SHIFT + ENTER 。 该公式将被转换(转换为矩阵函数),如= {=MAX(SE(B:B=B7;C:C))}。现在,您可以将单元格D2拖动到列的末尾(示例中为D7)。 您也可以将我的第二个解决方案与YEAR函数结合使用,如@Yass所述。

答案 2 :(得分:-1)

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

=MAX(IF(Transaction_Date<=DATE(J1,12,31),IF(Transaction_Date>=DATE(J1,1,1),Account_Balance)))
相关问题