Sumproduct - 计算相等的数字对(并过滤它们)
Sumproduct - counting equal pairs of numbers (and filtering them)
在 D&E 列中,我有一个游戏得分列表,其中 D 是得分,E 是得分,就像这样
D E
1 3
4 2
3 3
3 1
我正在尝试创建一个公式,根据 D 列是否大于、等于或小于 E 列来显示赢/平/输记录。在此示例中,它将显示 2 / 1 / 1
。
到目前为止我有这个
=(SUMPRODUCT(--(D12:D200>E12:E200)))&" / "&SUMPRODUCT(--(D12:D200=E12:E200))&" / "&(SUMPRODUCT(--(D12:D200<E12:E200)))
但是有两个问题。一个是所有空白行都被算作相等,所以结果是 2 / 186 / 1
.
第二个是在另一列中我有一个星期几的列表,我希望能够按天筛选出行并让结果反映这一点。我有不同的公式使用 SUBTOTAL
而不是 SUM
来计算总点数,效果很好。但我不知道我需要对我的公式进行哪些等效更改。任何帮助将不胜感激。
至于你的第一个问题,你的公式确实考虑到了空白并将它们视为平等的。您可以调整中间的 SUMPRODUCT
公式以省略空格,就像这样:
=SUMPRODUCT(ISNUMBER(D12:D200)*(--(D12:D200=E12:E200)))
第二个问题是关于按星期几过滤行。这是应用 "Day" 过滤器之前的视图 - 如您所见,我们有 5 胜(蓝色)、4 平(橙色)和 3 负(绿色)。
您需要使用以下公式使 SUMPRODUCT
动态化(即它会对过滤掉的行做出反应):
=SUMPRODUCT(SUBTOTAL(3,OFFSET(F12:F200,ROW(F12:F200)-ROW(F12),,1)),--(D12:D200>E12:E200))&" / "&SUMPRODUCT(SUBTOTAL(3,OFFSET(F12:F200,ROW(F12:F200)-ROW(F12),,1)),ISNUMBER(D12:D200)*(--(D12:D200=E12:E200)))&" / "&SUMPRODUCT(SUBTOTAL(3,OFFSET(F12:F200,ROW(F12:F200)-ROW(F12),,1)),--(D12:D200<E12:E200))
这是周一的结果:
在 D&E 列中,我有一个游戏得分列表,其中 D 是得分,E 是得分,就像这样
D E
1 3
4 2
3 3
3 1
我正在尝试创建一个公式,根据 D 列是否大于、等于或小于 E 列来显示赢/平/输记录。在此示例中,它将显示 2 / 1 / 1
。
到目前为止我有这个
=(SUMPRODUCT(--(D12:D200>E12:E200)))&" / "&SUMPRODUCT(--(D12:D200=E12:E200))&" / "&(SUMPRODUCT(--(D12:D200<E12:E200)))
但是有两个问题。一个是所有空白行都被算作相等,所以结果是 2 / 186 / 1
.
第二个是在另一列中我有一个星期几的列表,我希望能够按天筛选出行并让结果反映这一点。我有不同的公式使用 SUBTOTAL
而不是 SUM
来计算总点数,效果很好。但我不知道我需要对我的公式进行哪些等效更改。任何帮助将不胜感激。
至于你的第一个问题,你的公式确实考虑到了空白并将它们视为平等的。您可以调整中间的 SUMPRODUCT
公式以省略空格,就像这样:
=SUMPRODUCT(ISNUMBER(D12:D200)*(--(D12:D200=E12:E200)))
第二个问题是关于按星期几过滤行。这是应用 "Day" 过滤器之前的视图 - 如您所见,我们有 5 胜(蓝色)、4 平(橙色)和 3 负(绿色)。
您需要使用以下公式使 SUMPRODUCT
动态化(即它会对过滤掉的行做出反应):
=SUMPRODUCT(SUBTOTAL(3,OFFSET(F12:F200,ROW(F12:F200)-ROW(F12),,1)),--(D12:D200>E12:E200))&" / "&SUMPRODUCT(SUBTOTAL(3,OFFSET(F12:F200,ROW(F12:F200)-ROW(F12),,1)),ISNUMBER(D12:D200)*(--(D12:D200=E12:E200)))&" / "&SUMPRODUCT(SUBTOTAL(3,OFFSET(F12:F200,ROW(F12:F200)-ROW(F12),,1)),--(D12:D200<E12:E200))
这是周一的结果: