如何根据 Excel 中的两个条件获得加权和?
How to get weighted sum depending on two conditions in Excel?
我在 Excel 中有这个 table:
我正在尝试根据两个条件获得加权和:
- 无论是公司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
因此,Sum 第 2 行 = 450.
现在我只检查乘数(1 或 0),使用此代码:
=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
我在 Excel 中有这个 table:
我正在尝试根据两个条件获得加权和:
- 无论是公司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
因此,Sum 第 2 行 = 450.
现在我只检查乘数(1 或 0),使用此代码:
=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