2017-08-08 118 views
-2

我需要计算excel中收益率的标准差。我有一群公司的月报;可以说对于A公司,我在1995年和1996年有1到12个月,但1997年只有1到7个月。我有一组2000个公司,他们都在同一列,我不知道如何标准化公式范围根据我当年的月数而变化。动态范围转化为标准差公式

+1

他们说一张图片胜过千言万语。请说明您的数据如何与预期结果相结合。 –

+1

你可以使用带有结构化引用的表;你可以使用一个动态命名范围;请显示您已经尝试了什么,以及您遇到问题的位置。 –

回答

0

传递给STDEV的范围可以包含空值(即1997年的第8-12个月),在计算标准偏差时将忽略这些值。我不知道行/列是如何排列的,但也许可以在1995年,1996年和1997年使用相同的公式。

0

您可以使用INDEX函数获取动态范围。例如,假设你有2列10行的范围(这应该是很容易使用的公式,例如COUNTA,找出)

=STDEV(INDIRECT(ADDRESS(2,1,4)&":"&ADDRESS(COUNTA(A:A),COUNTA(1:1),4))) 

说明:

  • ADDRESS(Row number, Column number, Reference type):在这里,我有4个作为参考类型,这意味着“相对”。你可以查看Excel帮助来查看他们还有什么。
  • ADDRESS()&":"&ADDRESS():这会给我一个范围从A2:B10。还有其他的方式,如OFFSET来检索这个值。
  • INDIRECT(Reference text):从上述范围A2:B10,它是Excel不理解的字符串,因此使用INDIRECT会将该字符串转换为实际范围。

您可以在进入名称管理器或定义范围名称之前先测试此公式。希望这可以帮助。

+1

'你可以使用INDEX函数'。我没有看到使用'INDEX',这会比使用这么多的volatile函数更好。 '= STDEV(INDEX(A:A,2):INDEX(A:A,COUNTA(A:A)-1))' –

+0

是的,你是对的。 INDEX是一种更好的方式。如果你有很多东西,这些易失性函数会减慢速度。 – ian0411