因此,我有一个数据集,其中包含从 2000 年 1 月到今天的六个不同股票指数的月度股票回报率。在页面底部,我想以与前一年相比的百分比变化显示每年的年度回报率(即,我想创建一个表格,其中一列包含“2001”、“2002”,另一列包含“8%”、“-4%”等。我应该使用什么命令?
除此之外,有没有办法创建一个公式,使得当第一个单元格计算 2000 年的收益时,第二个单元格计算 2001 年的收益,第三个单元格计算 2002 年的收益等等?这样我就不必手动输入每年的单元格范围,从而避免人为错误。
我附上了我的数据集的图片,如果有人能写出 excel 输入或帮我弄清楚如何写,我将不胜感激!2000 年的回报将显示在单元格 b256 中,2001 年的回报将显示在 b257 中,等等
答案1
对于 2001 年及以后的年份,您可以执行以下操作。对于 2000 年,没有提供 12/31/1999 的值来与之比较:
=(XLOOKUP(DATE($A257,12,31),$A$2:$A$253,B$2:B$253,,-1)/XLOOKUP(DATE($A257-1,12,31),$A$2:$A$253,B$2:B$253,,-1))-1
这是 B257 的公式。它将向右向下复制,并成功复制到 20 行 6 列的所有单元格。
它采用公式 ( ( 2001 - 2000 ) / 2000 ) 并使用一点代数运算得出 ( 2001 / 2000 ) - 1。
“技巧”是通过使用DATE()
获取相关年份的最后一天,从 %Return 区域中的年份信息生成日期XLOOKUP()
,该日期可用于“等于或小于”匹配以查找相应年份的最后日期。并从该年份中减去 1 以找到上一年的相同值来驱动除法,然后明智地使用绝对和相对引用来保持使用列 A 进行查找,同时行会发生变化,并且 的列Return_Array
可以在您将其复制到右侧时发生变化,但要确保行不会在您向下复制时发生变化,因为它们每次都指定列的整个使用部分,而不仅仅是一个单元格,所以它们不应该改变。