我如何统计一个单词出现在某一行上的次数?

时间:2016-04-01 19:29:14

标签: excel vba excel-vba

我有四组代表垒球赛程的数据。看起来像这样:

    Day     Team 1     Team 2
    M       A Team     B Team
    T       C Team     D Team

...

但是四次结束了。我希望能够更改计划并自动计算团队在特定日期玩的次数。想法?

2 个答案:

答案 0 :(得分:0)

你们会这样:

=COUNTIF(2:2,"A Team")

编辑:

您可以将SUMPRODUCT()函数与数学操作数*+一起使用:

=SUMPRODUCT(($A$2:$A$43=H$1)*(($B$2:$B$43=$G2)+($C$2:$C$43=$G2)))

![enter image description here

它是如何运作的:

由于TRUE / FALSE是布尔值,因此可以分别减少到1/0。使用*+个操作数分别类似于ANDOR

SUMPRODUCT遍历范围并测试()内的每个标准。因此,它首先测试A列中的单元格是否等于H1,如果是,则返回1,否则返回0。下一部分设置OR如果在同一行中找到团队名称,它也返回1. 1 * 1 = 1. SUMPRODUCT跟踪所有1和0并将它们加在一起,这样你就得到了伯爵。

如果其他列中包含团队名称,则只需添加+区域的列。

答案 1 :(得分:0)

好的,让我们开始通过"开始>使您的桌子成为真正的桌子。格式为表"并打电话给你的表"数据"。然后你有三列叫做数据[日],数据[团队1]和数据[团队2]。例如:

Day         Team 1   Team 2
Monday      A Team   B team
Tuesday     C Team   D Team
Wednesday   C Team   A Team
Monday      B Team   C Team

现在是丑陋的部分。你需要一个7 * 10(天*团队)的矩阵

(Cell E1)    Team 1    Team 2    Team 3    Team 4    ...
Monday      *1
Tuesday     
Wednesday
...

公式* 1

=SUMPRODUCT((data[Day]=$E2)*((data[Team 1]=F$1)+(data[Team 2]=F$1)))

现在将该公式拖到星期日,然后将其复制到其他团队(当我尝试将其拖到其他团队时,Excel搞砸了列名!)。

这将自动填充矩阵并告诉您哪个团队在特定日期播放的次数。

它做什么?基本上,SUMPRODUCT不仅可以构建产品,还可以评估布尔条件。因此,如果在周一,A队比赛,那么第一栏将返回(对于A队/周一队):

1*(1+0)

SUMPRODUCT对矩阵中的每一行都做了这个,然后总结了结果。