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))

这是周一的结果: