2011-09-27 455 views
2

在Excel中,我有從列A到列J的10列數據,每列有1000行從行1到行1000.我想知道如何計算10 x 10的協方差矩陣Excel中有10列數據?使用Excel計算協方差矩陣

我的部分解決方案是基於美元符號和複製公式:

在細胞中的公式=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)代替。

謝謝!

+1

的東西並不完全意義在你的問題......你到底要第二個和後續行是什麼呢? (順便說一句,如果你想錨行號使用'A $ 1',或錨行和列'$ A $ 1') –

回答

4

要使公式「防拷貝」,您可以使用=OFFSET()函數結合行和列索引。例如:

  • L1 ... U1輸入數字1,2,3,... 10
  • K2 ...... K11輸入數字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,複製到L2..U11獲得您的10×10矩陣

希望幫助

+0

謝謝! (1)我想知道OFFSET的第二個和第三個參數是什麼意思? (2)如果有1000個列而不是10個,那麼您將如何高效地完成前兩個步驟,或者您是否切換到另一種與您的回覆中描述的方法不同的方法? – Tim

+0

@Tim(1)OFFSET(引用,行,列,高度,寬度)...更多詳細信息請參考Excel幫助 ....(2)我不會使用Excel(最大256列),所以max在理論上,ca 125 col可以在同一個選項卡中使用矩陣完成,否則在不同選項卡中使用255矩陣......這是一個時間和耐心的問題;對於> 20 col的左右,我更可能做一次VBA函數計算n個協方差 – MikeD