2012-02-02 88 views
1

基於特定值的數據在Excel中的行大致在格式選擇在2列,

A B C 
ID1 ID2 0.5 
ID1 ID3 0.7 
ID2 ID3 0.9 

我想創建一個相關矩陣(列C是A中的ID和B之間的相關性)。它肯定可以用一個數據透視表來完成,但是如果因爲錯誤可能不明顯而存在重複,那麼我必須使用總和,這可能是有風險的。輸出格式是:

ID1 ID2 ID3 
ID1 1 .5 .7 
ID2 .5 1 .9 
ID3 .7 .9 1 

(「1」容易與一個=IF(B$2=$A3,1,0)完成,與式替換0找到相關性)

我基本上要匹配(col a= ID1 & & col b = ID2)。我懷疑它可以通過串聯完成,但我不確定這是一個很好的解決方案嗎? Match/Vlookup等只返回[在該欄中]的第一個匹配,這對我來說並不好。我猜是否贊同'where'條款?

我的搜索沒有發現任何usuable的幫助下,我已經計算的相關性,我把它到Excel從SQL。所以是的,任何想法都是超級的,一個數據透視表是最後的手段。

謝謝。

回答

1

假定源數據的範圍是Sheet 1上,從A1到C3和你的結果範圍是Sheet 2上,從A1到D4。

你可以把這個公式在B2:

=SUMPRODUCT((Sheet1!$A$1:$A$3=Sheet2!B$1)*(Sheet1!$B$1:$B$3=Sheet2!$A2)*Sheet1!$C$1:$C$3) 

,然後拖動並在整個範圍內刪除此公式。

+1

您也可以使用類似的版本,但與查找時,具有的優點是列C可以是文本或數量,即'= LOOKUP(2,1 /(Sheet 1中$ A $ 1:$ A $ 3 = Sheet 2中B $ 1)/(Sheet 1中$ B $ 1:!$ B $ 3 = Sheet 2中!$ A2),Sheet1!$ C $ 1:$ C $ 3)' – 2012-02-02 22:56:01

+0

@barryhoudini:有趣的解決方案。這可能是值得回答:) – JMax 2012-02-03 07:32:40

+0

巴里,查找版本似乎不工作,我在Excel中出錯。這些值將始終是數字 - 但sumproduct的運行風險與數據透視表相同,在這種情況下,重複數據會導致錯誤信息的發佈 - 但這並不是顯而易見的錯誤。 無論哪種方式它是一個輝煌的解決方案,所以謝謝你JMAX。我沒有意識到你可以在Excel中使用這種邏輯索引。 – 2012-02-03 13:12:10

0

你爲什麼不創建一個結合了列AB值的第三列使用=A1&B1,然後做vlookup該值:

A B C  D 
ID1 ID2 ID1ID2 0.5 
ID1 ID3 ID1ID3 0.7 
ID2 ID3 ID2ID3 0.9