我有一个包含两列的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(某种类型的函数,它给出了每年的日期范围)
感谢所有帮助
答案 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)))