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

时间:2016-10-16 10:36:08

标签: excel excel-formula conditional-statements worksheet-function multiple-conditions

我在 Excel 中有此表: enter image description here

我试图根据两个条件得到加权和:

  • 公司1 还是公司2 (股份数量不同)
  • column A公司1 )和column B公司2 )是 0 还是 1 (乘数不同)

示例:
让我们计算第2行的加权和:

总和 = 2 乘数1 )* 50 1股价 >)* 3 Company 1的共享数量)+

+ 0.5 乘数0 )* 50 1股价)* 6 < / strong>( Company 2的共享数量)= 450

第2行 = 450 总和

目前我只使用以下代码检查乘数( 1 0 ):

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

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

我如何检查是公司1 还是公司2 才能乘以相应的股票数量

UPD:

当只有两家公司时,

Rasmus0607 提供了解决方案:

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

Tom Sharpe 提供了更通用的解决方案(公司数量可能大于2)

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:2)

我可以提供一种更通用的方法来做到这一点,事后可以通过改变第二个CHOOSE语句来应用于两列以上: -

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

不幸的是,这是一个数组公式,你必须输入 Ctrl Shift 输入。但是,仅仅通过重复使用其中一个答案并保持简单,这是一个没有实际意义的点。

你也可以试试这个: -

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

enter image description here

以下是三家公司的情况

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

(数组公式)或

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

答案 2 :(得分:1)

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

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

这有点不太通用,但是应该产生你期望的结果。