2012-02-02 76 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