首页 > 解决方案 > Excel - 总结一组条件在范围内的一行内发生的次数

问题描述

我在一个范围内有多个标准,我希望将标准的特定组合在一行中发生的次数相加。

以下是我的标准范围:

Segment          Season          Sport

Segment 1        Fall            Baseball
Segment 2        Winter          Running
Segment 3        Spring          Golf
Segment 4        Summer          Basketball
                                 Football

我有一份我正在尝试构建的报告,其中列出了根据细分和季节列出每项运动的次数。在报告中,每个部分和季节都在一个下拉列表中,并且每项运动都列在单独的行中:

Segment: (Chosen w/Drop down list)
Season:  (Chosen w/Drop down list)

Baseball:   (# of times Baseball & Chosen Segment & Chosen Season appear in the same row)
Running:    (# of times Running & Chosen Segment & Chosen Season appear in the same row)
Golf:       (# of times Golf & Chosen Segment & Chosen Season appear in the same row)
Basketball: (# of times Basketball & Chosen Segment & Chosen Season appear in the same row)
Football:   (# of times Football & Chosen Segment & Chosen Season appear in the same row)

是否有任何公式或公式组合可以检查给定条件范围内的每一行,在这种情况下是三个单独的变量,并计算该组合在该范围内出现的次数?

除此之外,标准并不总是属于同一列。例如,如果我在范围中有五列,我正在检查三个类别中的每一个都可以在任何列中。这就是为什么我要检查每个组合的各个行的原因。

标签: excelexcel-formulasum

解决方案


如果您可以保证这些值每行仅出现一次,请使用以下命令:

=SUMPRODUCT(--(MMULT(($A$1:$E$29=$J$13)+($A$1:$E$29=$J$14)+($A$1:$E$29=$I16),TRANSPOSE(COLUMN($A$1:$E$29))^0)>=3))

如果没有,那么您需要使用:

=SUMPRODUCT(--((MMULT(--($A$1:$E$29=$J$13),TRANSPOSE(COLUMN($A$1:$E$29))^0)>0)+(MMULT(--($A$1:$E$29=$J$14),TRANSPOSE(COLUMN($A$1:$E$29))^0)>0)+(MMULT(--($A$1:$E$29=$I16),TRANSPOSE(COLUMN($A$1:$E$29))^0)>0)>=3))

在此处输入图像描述


以上每行计数 1 个。如果您想每次运动出现在同一行中时计数,那么如果在同一行BaseBall中出现两次,Fall然后Segment 1计数为2而不是1使用:

=SUMPRODUCT(--((MMULT(($A$1:$E$29=$J$13)+($A$1:$E$29=$J$14),TRANSPOSE(COLUMN($A$1:$E$29))^0)>=2)*(MMULT(--($A$1:$E$29=$I16),TRANSPOSE(COLUMN($A$1:$E$29))^0))))

推荐阅读