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

问题描述 投票:0回答:3

我有一个包含两列的 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(某种类型的函数,可以给我每年的日期范围)

感谢大家的帮助

excel date
3个回答
0
投票

您可以使用:

=MAX(IF(YEAR($A$2:$A$9)=J1,$E$2:$E$9,0))

数组公式同时按Ctrl+Shift+Enter
可以拖动
$A$2:$A$9 绝对引用的 Date $ 列将其更改为最后一行
$E$2:$E$9 值列将其更改为最后一行
J1 新列中的第一个日期,拖动时会自动更改
如果将测试Date的年份到J1并返回相应的Value


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
投票

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

=MAX(IF(Transaction_Date<=DATE(J1,12,31),IF(Transaction_Date>=DATE(J1,1,1),Account_Balance)))
© www.soinside.com 2019 - 2024. All rights reserved.