如何根据Excel中的两个条件得到加权总和?
我在Excel中有这个表格:
我想根据两个条件得到加权总和:
- 无论是公司1还是公司2 (股份数量不同)
-
column A
( 公司1 )和column B
( 公司2 )是否有0或1 (乘数不同)
例:
让我们计算第2行的加权总和:
总和 = 2 ( 乘数1 )* 50 ( 1股价格 )* 3 ( Company 1
股票数量 )+
+ 0.5 ( 乘数0 )* 50 ( 1股价格 )* 6 ( 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给出了一个解决scheme:
=$B$9*$E$8*IF(A2=1;$B$7;$B$8)+$B$9*$E$9*IF(B2=1;$B$7;$B$8)
Tom Sharpe给出了更一般的解决scheme(公司数量可以大于2)
我将我的Excelfile upload到DropBox: Excel文件
我可以提供一个更为一般的方法来做事后处理,你可以通过修改第二个CHOOSE语句来应用两个以上的列:
=SUM(CHOOSE(2-A2:B2,$B$7,$B$8)*CHOOSE(COLUMN(A:B),$E$8,$E$9))*$B$9
不幸的是,这是一个数组公式,你必须inputCtrl Shift Enter 。 但是,如果用一些重复的方法来使用其他的答案,并保持简单,那么这个问题会不会更好。
你也可以试试这个:
=SUMPRODUCT(N(OFFSET($B$6,2-A2:B2,0)),N(OFFSET($E$7,COLUMN(A:B),0)))*$B$9
以下是三家公司的情况
=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
= $ B $ 9 * $ E $ 8 * IF(A2 = 1; $ B $ 7; $ B $ 8)+ $ B $ 9 * $ E $ 9 * IF(B2 = 1; $ B $ 7; $ B $ 8)
由于在COUNTIF
函数中,事先不知道哪个公司的列包含0或1,我build议使用IF
更长,但更系统的解决scheme:
=$B$9*$E$8*IF(A2=1;2;0,5)+$B$9*$E$9*IF(B2=1;2;0,5)
这是不太一般的,但应该产生你期望在这种情况下的结果。