Excel SUMIF 使用当前行

Excel SUMIF using current row

我从来没有因为过去遇到过的各种 Excel 难题而来到这里,但这个难题让我感到难过。它与此有关 table :

我想获得我的总助攻数,但是只有我赢得的比赛(目标>目标反对)。 table 中的总数为 4+2+5+0+2=13。

事实证明这很棘手,因为我希望将 13 的结果返回到单个单元格,因此在计算期间引用当前行并不像拥有一列可以向下拖动的公式那样容易占每个新行。

我读过建议 VLOOKUP、INDEX(MATCH()) 等的答案,但它们似乎解决的问题与我的类似,但并不完全相同。

在此先感谢您的帮助!

我假设 "Goals For" 是 A 列 "Goals Against" B 列和 "Assists" C 列。如果没有大量数据,我会使用数组公式。

{=SUM(IF(A:A>B:B,C:C,0))}

确保使用 Shift+Ctrl+Enter 输入公式,因为这是一个数组公式。

您可以将 SUMPRODUCT 用作:

=SUMPRODUCT((A2:A11>B2:B11)*(C2:C11))

参考图片:

编辑:______________________________________________________________

SUMPRODUCT function multiplies arrays in formula and returns the sum of those products.

因此根据问题中的数据,公式将按如下方式计算:

第一步: 计算(A2:A11>B2:B11)

这将为您提供如下数组:

{(A2>B2);(A3>B3);(A4>B4);(A5>B5);(A6>B6);(A7>B7);(A8>B8);(A9>B9);(A10>B10);(A11>B11)}

这是

{(4>1);(4>1);(1>3);(6>2);(0>4);(2>1);(3>2);(1>4);(2>3);(2>6)}

等同于

{TRUE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE;FALSE;FALSE}

这与

相同
{1;1;0;1;0;1;1;0;0;0}

第 2 步: 计算 (C2:C11)

这将为您提供如下数组:

{4;2;0;5;0;0;2;1;1;2}

第三步:计算(A2:A11>B2:B11) * ( C2:C11)

这将计算为:

{1;1;0;1;0;1;1;0;0;0}*{4;2;0;5;0;0;2;1;1;2}

相当于

{1*4;1*2;0*0;1*5;0*0;1*0;1*2;0*1;0*1;0*2}

并会给予

{4;2;0;5;0;0;2;0;0;0}

第 4 步: 计算 SUMPRODUCT((A2:A11>B2:B11) (C2:C11))*

这等于

SUMPRODUCT({4;2;0;5;0;0;2;0;0;0})

计算为

4+2+0+5+0+0+2+0+0+0 = 13

有关 SUMPRODUCT 的详细信息,请参阅 this