2015-10-28 157 views
0

我有一个表有两列VLOOKUP公式数组在Excel

ID  Probability 
A  1% 
B  2% 
C  3% 
D  4% 

我还有一个表,与一些标识和相应的权重:

ID Weight 
A 50% 
D 25% 
A 15% 
B 5% 
B 5% 

我要找的是以单一公式的方式,使用来自第一个表的数据为每个ID在第二个表中找到对应的概率,然后将它们各自的来自第二个表的权重相乘,然后对结果求和。

我认识到解决这个问题的一个简单方法是在第二个表中添加一个代理列,并使用vlookup列出相应的概率,然后乘以权重,然后求和结果,但我觉得必须有更多优雅的方案。

我试过在Vlookup和Index/Match公式中输入第二个表ID作为数组,但是虽然两者都接受范围作为查找值,但它们只执行范围的第一个值而不是循环遍历整个阵列。

我想理想地该公式将

  1. 设置一个1×5阵列的ID,
  2. 填充基于来自所述第一表
  3. 乘以新的概率的新1×5阵列阵列由现有的1×5阵列权重
  4. 萨姆无论是结果

[编辑]因此,对于上面的例子,该最终结果为(50%x 1%)+(25%x 4%)+(15%x 1%)+(5%x 2%)+(5%x 2%)= 1.85%

真正的表格比我给出的例子要大得多,因此个别vlookups的简单Sum()函数已经不存在了。

喜欢听到任何聪明的解决方案吗?

+0

我想你应该向我们展示所需的输出。 “一张图片胜过千言万语”是Stack Overflow上非常真实的谚语。 –

+0

当然。对于上面的例子,输出将为: (50%x 1%)+(25%x 4%)+(15%* 1%)+(5%x 2%)+(5%x 2%) = 1.85% 这有帮助吗? – jwil408

+0

否更新您的原始问题。 –

回答

0

使用相同的范围由张庭玉Đăng夸给出:

=SUMPRODUCT(SUMIF(A1:A4,D1:D5,B1:B4),E1:E5)

问候

0

您可以使用此公式:在这个

{=SUM(LOOKUP(D1:D5;A1:A4;B1:B4)*E1:E5)} 

随着表:

A B C D E 
1 A 1%  A 50% 
2 B 2%  D 25% 
3 C 3%  A 15% 
4 D 4%  B 5% 
5    B 5% 
+0

这只有在A1:A4中的条目保持严格按照字母顺序升序时才有效。 –

0

非常感谢,谢谢你们!

异或LX,你的答案似乎适用于所有情况,这正是我所寻找的(看起来它比我原先想象的要简单得多)。我想我误解了SUMIF函数的工作方式。

如果有人有兴趣,我也发现我自己的(愚蠢复杂的)解决方案:

=SUM(IF(A1:A4=TRANSPOSE(D1:D5),1,0)*TRANSPOSE(E1:E5)*B1:B4)

这基本上的工作原理是转化的东西成4×5矩阵来代替。我认为我更喜欢XOR LX解决方案,因为它很简单。

感谢大家的帮助!