excelperfect
引言:本文的练习整理自chandoo.org。多练习,这是我们从小就在使用的学习方法。在练习的过程中,认真思考,不断尝试,以此来磨练自己的公式与函数应用技能,也让研究Excel的大脑时刻保持着良好的状态。同时,想想自己怎么解决这个问题,看看别人又是怎样解决的,从而快速提高Excel公式应用水平。
本文提供的公式很奇怪,所使用的函数也不常用,但对于数据分析来说值得研究。
本次的练习是:示例数据如下图1所示。
图1
第3行是投资额,第5行是投资回收的累计现金流。根据第5行的数据求投资回收期。
要求不能使用易失性函数。
请写下你的公式。
注:投资回收期的计算公式:
=n + (ABS(a)/b)
其中,n代表出现第一个正的累计现金流之前的年份;a代表最后一个负的累计现金流值;b代表第一个正的累计现金流对应年份的投资额。
因此,对于本示例来说,应该是:
=2+(ABS(C5)/D3)
=2+(ABS(-65900)/95830)
=2.687676
解决方案
公式1:
=LOOKUP(0,A5:F5,A2:F2-A5:F5/B3:F3)
公式2:
=PERCENTRANK(A5:F5,,20)*MAX(A2:F2)
公式3:数组公式。
=FORECAST(,IF((LOOKUP(,A5:F5,A2:F2)-A2:F2+0.5)^2<1,A2:F2),A5:F5)
公式4:数组公式。
=PERCENTRANK.INC(PROB(TRANSPOSE(COLUMN(A3:F3))*{1,0,0,0},TRANSPOSE(A3:F3)*{1,0,0,0}+{0,9,-9,1}^99,1,TRANSPOSE(COLUMN(A3:F3))),0,6)*F2
或者:
=PERCENTRANK.INC(SUMIF(A2:F2,'<='&A2:F2,A3:F3),0,6)*F2
或者:
=PERCENTILE.INC(A2:F2,PERCENTRANK.INC(SUMIF(A2:F2,'<='&A2:F2,A3:F3),0,20))
联系客服