Excel内有一行数据需要计算复合增长率

Excel内有一行数据,从B2至L2,分别对应的是年份,2002-2012年。且这些数据内有些为正,有些为负。
现在我需要从左至右找到第一个正数,从右往左找到一个正数,分别将年份找到存在M2和N2,然后将他们之间的复合增长率计算保存在O2.
如何操作? 例如一组数【-20,-15,10,20,40,-10,20,-25,-30,-45,-10】
那么从左至右就是10,对应2004年,从右往左是20,2008年,
复合增长率= (20/10)^(1/(2008-2004))

第1个回答  2014-01-28
【重要!!!】以下公式必需按CTRL+SHIFT+回车,输入数组公式才能正确计算。

M2公式:=INDEX($2:$2,MIN((($B$2:$L$2<=0)*1E+99+1)*COLUMN($B$2:$L$2)))
N2公式:=INDEX($2:$2,MAX(($B$2:$L$2>0)*COLUMN($B$2:$L$2)))

另外,假设B1:L1为年份数据,则对应两个年份的公式如下。
第一个年份:=INDEX($1:$1,MIN((($B$2:$L$2<=0)*1E+99+1)*COLUMN($B$2:$L$2)))
第二个年份:=INDEX($1:$1,MAX(($B$2:$L$2>0)*COLUMN($B$2:$L$2)))

整个复合增长率公式为:
=(N2/M2)^(1/(INDEX($1:$1,MAX(($B$2:$L$2>0)*COLUMN($B$2:$L$2)))-INDEX($1:$1,MIN((($B$2:$L$2<=0)*1E+99+1)*COLUMN($B$2:$L$2)))))
第2个回答  2022-07-29
输入公式
打开EXCEL表格,在单元格D2内输入计算复合增长率的公式“=EXP(LN(B1/A1)/C1)-1
查看结果
按下回车,单元格内公式转换成了计算结果。
设置百分比
选中结果,点击菜单栏上“数字-百分比”,将得数转换成了百分比,点击增加小数位数,将得数设置为2位小数。
    官方服务
      官方网站官方网站
第3个回答  推荐于2016-02-24
假定年份在B1:L1
M2公式:
=INDEX(B2:L2,MATCH(1=1,B2:L2>0,))
公式以CTRL+SHIFT+ENTER三键结束。
N2公式:
=INDEX(2:2,MAX((B2:L2>0)*COLUMN(B2:L2)))
公式以CTRL+SHIFT+ENTER三键结束。
O2公式:
=(N2/M2)^(1/(INDEX(1:1,MAX((B2:L2>0)*COLUMN(B2:L2)))-INDEX(B1:L1,MATCH(1=1,B2:L2>0,))))
公式以CTRL+SHIFT+ENTER三键结束。本回答被提问者采纳
相似回答