我有一个由以下结构组成的数据集,想要生成一个年回报率表。数据可以仅是每年的第一天,有时也可以是每月的数据。对于本年度,绩效应显示为年初至今。由于我的数据集有 8500 行,有没有一种优雅的方法可以做到这一点。就我个人而言,我正在考虑首先创建一个过滤器,以获取特定帐户相关期间的一系列数据。然后应用计算(使用日期上的 MIN 和 MAX 来选择正确的值行)来确定您是否只需要计算全年或年初至今的表现。
但我想知道是否有建议或优雅的方法来做到这一点并使计算量尽可能低?
按帐户和日期对数据进行排序(升序)
为年份添加新列,以便轻松地按年份对数据进行分组。 在 D 列(标题为“年份”)
Coulmn D =YEAR(A2) 中的公式“向下拖动此公式以填充所有行”
使用数据透视表和一些辅助列来简化年度绩效的计算。
创建数据透视表: 选择您的数据范围(A 列到 D 列)。 转到“插入”选项卡并选择“数据透视表”。 在新工作表中创建新的数据透视表。
Rows=将帐户和年份添加到行区域。 值=加值两次 首先作为当年的最小值(使用最小值汇总函数)。 第二个作为当年的最大值(使用最大汇总函数)
在数据透视表旁边的列中,使用以下公式计算年回报率 =(结束值 / 开始值 - 1) * 100
将每个帐户和年份的最大值称为 End_Value,将最小值称为 Start_Value。 本年度年初至今计算:
对于当前年份,使用最新的可用值(当月月底)作为 End_Value,使用年初的值作为 Start_Value。 使用相同的回报公式计算 YTD 值。
现在创建一个汇总表,使用 LOOKUP 或引用公式合并所有账户的年度回报
新建工作表,设置汇总表
列 = 作为标题的帐户 行 = 年(包括当年的“YTD”行)。
使用 GETPIVOTDATA 函数将计算出的年回报率值从数据透视表拉入汇总表
Excel 计算回报示例 假设您的数据透视表具有以下列:
账户年份 Start_Value(最小值) End_Value(最大值) 账户 1 2017 1.000 1.820 账户 1 2018 1.820 2.327
在下一列中,添加:每年的回报 (%):=(D2/C2 - 1) * 100
结合数据透视表和计算列,可以高效生成多个账户的年化回报表