矩阵乘积函数mmult应用6:条件计数

小伙伴们,大家好。现在是特殊时期,希望大家做好防护措施,尽量不外出,更不要聚集,在家也可以找一些事情做,比如看电视,或做一顿好吃的,再不行学一下excel

。言归正传,今天来学习下mmult在条件计数方面的应用。还是来看几个例子。

1.求各年级出现的次数以及不重复的年级数

如下图所示,统计各年级出现的次数。对于这个问题,相信大家都会做。用countif完成就可以了,公式为=COUNTIF(A$3:A$10,A3),下拉填充就可以了。区域数组的公式为=COUNTIF(A3:A10,A3:A10),要先选中B3:B10,然后按三键完成。如果用mmult来完成,选中C3:C10,输入公式=MMULT(N(A3:A10=TRANSPOSE(A3:A10)),ROW(3:10)^0),按三键完成。

mmult的第1参数N(A3:A10=TRANSPOSE(A3:A10))返回的结果如下图array1所示,就是用竖向的年级和转置后横向的年级进行相等的比较,相等的返回true,不相等的返回false。n将true转为1,false转为0。就是下图的效果。然后对下图每一行的值求和就得到了对应年级的次数。其实和countif的意思也差不多,就是取出每个年级,然后和整个年级的区域进行判断。

mmult的第2参数ROW(3:10)^0返回的结果如上图array2所示,就是竖向的8个1。然后就是用mmult对2个参数进行矩阵相乘,其实就是对第1参数每一行的值就和。如果你不明白我说的意思,还是画矩形图。

不重复的年级数怎么算呢?如果是用countif,公式为=SUMPRODUCT(1/COUNTIF(A3:A10,A3:A10)),得到的结果是3,也就是不重复的年级有一年级,二年级,三年级,共3个年级。如果是用mmult,方法也是一样的,公式为=SUM(1/MMULT(N(A3:A10=TRANSPOSE(A3:A10)),ROW(3:10)^0)),按三键完成。countif得到的结果和mmult得到的结果是一样的。

2.求各年级&各班出现的次数以及不重复的年级&班级数

如下图所示,现在要同时算年级和班级出现的次数,是个双条件计数的问题。所以常规的方法要用到countifs,选中C14:C21,输入公式=COUNTIFS(A14:A21,A14:A21,B14:B21,B14:B21),区域数组按三键完成。用mmult来完成,选中D14:D21,输入公式=MMULT(N(A14:A21&B14:B21=TRANSPOSE(A14:A21&B14:B21)),ROW(14:21)^0),按三键完成。

mmult的第1参数N(A14:A21&B14:B21=TRANSPOSE(A14:A21&B14:B21))返回的结果如下图array1所示,是将年级和班级2个条件连接成1个条件,然后再向第1题那样的方式比较,也就是将竖向的和转置后横向的进行比较。最后用mmult对每1行的值求和,就得到了对应年级和班级的次数。

第2参数ROW(14:21)^0返回的结果如上图array2所示,还是返回纵向的8个1,和第1参数的列数相同。

用mmult的话,还可以有另一个公式,=MMULT((A14:A21=TRANSPOSE(A14:A21))*(B14:B21=TRANSPOSE(B14:B21)),ROW(14:21)^0),区域数组三键结束。

第1参数(A14:A21=TRANSPOSE(A14:A21))*(B14:B21=TRANSPOSE(B14:B21))是2部分的相乘,第1部分是年级比较后的结果,第2部分是班级比较后的结果,然后2部分相乘就是把2个条件合并在一起,和第1个连接的公式是一样的意思。我就不再截图了,大家可以自己研究一下。

那么不重复的年级&班级数怎么算呢?和之前的方法是一样的,公式为=SUM(1/MMULT(N(A14:A21&B14:B21=TRANSPOSE(A14:A21&B14:B21)),ROW(14:21)^0)),按三键结束,结果为6。如下图所示,三年级1班有2个是重复的,所以只算1个。还有2个一年级2班是重复的,也只能算1个。

3.在下表所有的彩票期数中,求和我们所选的彩票号码有任意2个相同的一共有多少期,分别是哪几期

我们所选的彩票号码为2,4,7,18,21,28这6个数字,每一期的彩票号码都是不重复的数字。只要每期的号码中有任意2个数字在我们所选的号码中出现就算做1期。比如第3期中的2和21在我们选的号码中出现,它就符合。再比如第9期中有2,7,18,28四个数字出现,就不符合要求,只要2个出现的。在I26输入公式=SUM(N(MMULT(COUNTIF(B25:G25,B28:G38),ROW(1:6)^0)=2)),完成。

mmult的第1参数COUNTIF(B25:G25,B28:G38)返回的结果如下图所示,就是用countif在我们所选的号码区域中统计每期号码出现的次数,返回的结果只能是0或1。结果是1的说明这个数字在我们所选的号码中出现了。然后用mmult对每一行的值求和,就得到了每1期有几个数字在我们所选的号码中出现。

mmult的第2参数ROW(1:6)^0返回纵向的6个1,和第1参数的列数相同。mmult最后返回的结果为{0;1;2;2;2;1;1;2;4;2;0},如下图H列所示,这样就得到每1期中有几个数字在我们所选的号码中出现。我们只需要有2个出现的,所以只需要计算等于2的有多少个就可以了,也就是判断mmult返回的结果是否等于2,成立的返回true,不成立的返回false。然后用n函数将true转为1,false转为0。最后用sum求和就得到了一共有多少期。

一共有多少期算出来了,分别是哪几期怎么算呢?其实就是一对多的查询,只要把上图黄色区域等于2的期数查询出来就可以了,用万金油公式=INDEX(A:A,SMALL(IF(MMULT(COUNTIF(B$25:G$25,B$28:G$38),ROW($1:$6)^0)=2,ROW($28:$38),4^8),ROW(A1)))&"",按三键结束,下拉填充,完成。

文件链接:

https://pan.baidu.com/s/1MPhl-0FDRHAmqjatz4MuTQ

提取码:6ys1

(0)

相关推荐

  • 掌握了MMULT函数,你就拿到了打开通往函数至高境界大门的钥匙

    送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! MMULT函数对于初学者来讲是一个比较陌生的函数,但不代表它默默无闻.函数发烧友对它趋之若鹜.今天我就来带大家一 ...

  • 精通Excel数组公式022:提取唯一值列表并排序(续)

    使用公式对数字进行排序 下图12展示了两个对数字进行排序的公式.使用SMALL/ROWS函数从小到大排序,使用LARGE/ROWS函数从大到小排序. 图12 使用辅助列公式对基于数字列的记录进行排序 ...

  • 只要函数基础扎实,遇到难题也能轻易解决!

    送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 我们这一代人都玩过<三国志>这款游戏,也为每个人心目中最厉害的三国英雄而争论过.恰巧这里有一份三国主 ...

  • 矩阵乘积函数mmult进阶应用7:条件计数

    小伙伴们,大家好.今天继续来说mmult在条件计数中的应用,还是来看两个例子. 1.计算晚点次数(抵达时间大于预计时间) 下图是一个时刻表,记录的是预计到达时间和实际到达时间.现在的问题是求出晚点的次 ...

  • 矩阵乘积函数mmult基础应用2:条件求和

    小伙伴们,大家好.昨天说了mmult的条件求和用法.今天继续来说下条件求和的应用,加强一下对mmult的理解. 1.对每个人大于80分的成绩求和 这是个单条件求和的问题,方法有很多,比如sum,sum ...

  • 矩阵乘积函数mmult基础应用1:条件求和

    小伙伴们好,今天继续来学习一下mmult的基础用法.先从最简单的求和开始,然后再到条件求和.不知道大家对于mmult的规则了解了多少,还是先来复习一下它的规则.第1参数的列数要和第2参数的行数相同,结 ...

  • 矩阵乘积函数mmult进阶应用8:像if({1,0})一样置换2列数据

    小伙伴们,还好吗?今天来分享一下mmult的另一个用法,像if({1,0},..,..)一样置换两列数据的位置,置换后可以用vlookup实现逆向查询.还是来看2个例子. 1.置换2列数值,并用vlo ...

  • 矩阵乘积函数mmult进阶应用5:累加求和

    小伙伴们,大家好.今天继续来说mmult的累加应用,这次的题目是按指定次数重复内容.有关这个问题,我们之前也说过很多方法,今天来详细说说mmult的方法. 先来看看数据源和最后的效果.下图左表是数据源 ...

  • 矩阵乘积函数mmult进阶应用4:累加求和

    小伙伴们好,不知道mmult有没有让你感觉很晕,反正我是有点晕了.咱们接着昨天的问题继续深入,准备好了吗? 1.计算甲原料在哪个仓库的库存量先达到30,并确定是在哪一天达到此库存量.(增加了原料) 在 ...

  • 矩阵乘积函数mmult应用3:累加求和

    小伙伴们,大家好.今天来说下mmult的累加求和,累加求和的用处也是挺大的.下面看几个例子吧. 1.计算每天的库存量 下图是一个入库记录表,现在要计算每天的库存量,库存量的计算方法是当天的入库量加上之 ...

  • 初识矩阵乘积函数mmult的原理和基本用法

    小伙伴们过年好!祝大家在新的一年里健康,平安,自在,百毒不侵.那我们今天也来学习一个新函数的用法,那就是mmult.在官方的解释中,它是返回两个数组的矩阵乘积,实际上乘积之后还要求和,可以看作sump ...

  • 跟李锐学Excel:COUNTIF函数按条件计数统计

    跟李锐学Excel:COUNTIF函数按条件计数统计