使用Excel计算协方差matrix

在Excel中,从A列到J列有10列数据,每列从第1行到第1000行有1000行。我想知道如何计算Excel中10列数据的10 x 10协方差matrix?

我的部分解决scheme是基于美元符号和复制公式:

首先我在一个单元格中input一个公式=covar($A1:$A1000,A1:A1000)

然后我复制并粘贴公式到第一个单元格右侧的单元格,这会给我=covar($A1:$A1000,B1:B1000)=covar($A1:$A1000,J1:J1000)

现在我不知道如何得到=covar(B1:B1000,A1:A1000)=covar(J1:J1000,A1:A1000) ,因为如果我复制粘贴公式到第一个我会得到=covar($A2:$A1001,A2:A1001) ,…, =covar($A1000:$A2001,A1000:A2001)

谢谢!

要使公式“防拷贝”,可以使用=OFFSET()函数结合行和列索引。 例:

  • L1 … U1中input数字1,2,3 …… 10
  • K2 … K11中input数字1,2,3 … 10
  • 现在将防复制引用指向10列A … J之一 。 这可以通过以下方式获得:
    • =OFFSET($A$1:$A$1000,0,L$1-1)跟随水平指数
    • =OFFSET($A$1:$A$1000,0,$K2-1)跟随垂直指数
  • 最后你把上面的2合并起来

     =COVAR(OFFSET($A$1:$A$1000,0,L$1-1),OFFSET($A$1:$A$1000,0,$K2-1)) 
  • 你在L2中input的这个公式,复制到L2..U11中以获得你的10x10matrix

希望有所帮助