如何根据 Excel 中的两个条件获得加权和?

How to get weighted sum depending on two conditions in Excel?

我在 Excel 中有这个 table:

我正在尝试根据两个条件获得加权和:


示例:
让我们计算 行 2:

的加权和

总和 = 2 (乘数 1) * 50 (1 股价格) * 3 (股数 Company 1 ) +

+0.5 (乘数 0) * 50 (1股价) * 6Company 2的股票数量)= 450

因此,Sum 第 2 行 = 450.


现在我只检查乘数(10),使用此代码:

=COUNTIF(A2:B2,0)*$B*$B + COUNTIF(A2:B2,1)*$B*$B

但它没有考虑 公司 1公司 2 的股票数量。我只将 1 股价格 乘以乘数,但不乘以股票数量)。


我怎样才能同时检查它是 Company 1 还是 Company 2 以便乘以相应的 Shares数量?


更新:

Rasmus0607给出了只有两家公司时的解决方案:

=$B*$E*IF(A2=1;$B;$B)+$B*$E*IF(B2=1;$B;$B)

Tom Sharpe给出了更通用的解决方案(公司数量可以大于2)


我将 Excel 文件上传到 DropBox: Excel file

由于在 COUNTIF 函数中,您事先不知道哪个公司列包含 0 或 1,我会建议使用 IF 的更长但更系统的解决方案:

=$B*$E*IF(A2=1;2;0,5)+$B*$E*IF(B2=1;2;0,5)

这有点不一般,但在这种情况下应该会产生您期望的结果。

=$B$9*$E$8*IF(A2=1;$B$7;$B$8)+$B$9*$E$9*IF(B2=1;$B$7;$B$8 )

我可以提供一种更通用的事后诸葛亮的方法,您可以通过更改第二个 CHOOSE 语句将其应用于两个以上的列:-

=SUM(CHOOSE(2-A2:B2,$B,$B)*CHOOSE(COLUMN(A:B),$E,$E))*$B

很遗憾,这是一个数组公式,您必须使用 CtrlShiftEnter 输入。但是,仅使用其他答案之一并重复使用并保持简单是否会更好,这是一个有争议的问题。

你也可以试试这个:-

=SUMPRODUCT(N(OFFSET($B,2-A2:B2,0)),N(OFFSET($E,COLUMN(A:B),0)))*$B

这是三个公司的情况

=SUM(CHOOSE(2-A2:C2,$B,$B)*CHOOSE(COLUMN(A:C),$F,$F,$F))*$B

(数组公式)或

=SUMPRODUCT(N(OFFSET($B,2-A2:C2,0)),N(OFFSET($F,COLUMN(A:C),0)))*$B