- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据对比
条件计数
累加
条件求和
目录
Sumif
Subtotal
Mmult
对于直接引用单元格区域的情况,使用sumif函数和subtotal函数均可以比较方便地得到各行列方向上的求和值,但如果某些情况下不能直接引用行列区域,例如有更多筛选条件的情况下、或计算内存数组的行列和值时,就需要使用mmult函数来替代。
月份
型号
产量
验证
辅助列做法:
max
如果要同时得到最大产量的月份:
类似具体实例:
再看一个稍微复杂一些的案例:要求得下面这个表格中,型号E最大一个月的产量。
返回目录
Mmult函数用法讨论
Countif
Sumproduct
代码
型号代码的出现次数
当需要计数的对象为数据区域时,使用countif
函数可以很方便地得到各个数据在数据组中的个数。
而当计数的对象包含某些条件、不可直接引用数据区域时(相当于计数对象为内存数组),
H列和I列的数据可以分别看作条件1和条件2,目的是要对同时满足条件1和条件2时的对象计数,
公式1
公式2
公式1的通用形式为:=mmult((条件1=transpose(条件1))*(条件2=transpose(条件2)),row(1:数组高度)^0)
公式2的通用形式为:=mmult(n(条件1条件2=transpose(条件1条件2)),row(1:数组高度)^0)
示例之二
示例之一
公式3
公式1($B$30:$B$70=COLUMN(A:L))*($C$30:$C$70=E)*($D$30:$D$70)生成一个二维内存数组,以月份为列标题,然后使用mmult对各列纵向数据进行求和运算
公式2和公式3可以看作是公式1的矩阵乘法变形。
注:
用线框
包围的单元格区域表示使用了多单元格的区域数组公式。
就需要使用其他函数来替代countif函数,例如sumproduct和mmult函数。其中sumproduct函数只能生成单个结果,不能生成数组用于后续的计算。
出现次数最多的代码
各代码出现次数
各型号出现次数最多的代码
A
B
引言:
sumif/subtotal/countif 这三个函数可用于条件求和、条件计数等功能,
但由于这三个函数的第一参数均要求为单元格区域的引用,因此在一些
复杂条件下,这些函数的使用受到了限制。在这些情况下,运用mmult函
数进行矩阵变换也可以达到类似的运算目的,在一定程度上起到替代以上
这几个函数的作用。
公式3
公式4
公式3通过对IF($H$25:$H$34=K25,$I$25:$I$34) 这个附加条件后生成的数组结果进行转置比较,生成一个矩阵,对行(或列)求和后得到各个元素的计数值。
公式4则将附加条件直接放置到mmult函数的运算矩阵参数中。
array1:
array2:
1月
2月
3月
4月
5月
6月
7月
8月
9月
10月
11月
12月
沿对角线对称的矩阵
入库量
日期
计算每天的库存量
对于直接引用单元格区域的情况,使用sumif函数和subtotal函数均可以比较方便地进行累加求和。
创建一个三角形矩阵
出库量
一个三角形矩阵
条件中增加了“出库量”数据列,需要对此列数据取负值同时计入累计的和值中。虽然用sumif和subtotal函数还是可以完成,但公式长度会随着统计的数据列的增多而大幅增加。
而使用mmult函数则可以同时对多个数据列进行运算,公式长度也比较经济。
公式1中使用了offset的多维引用,同时使用sumif函数进行了降维处理,同时得到入库和出库两列累计和值,然后通过mmult进行横向求和得到结果。
仓库
计算A仓库每天的库存量
再次增加条件后,使用sumif和subtotal函数就不太好处理了,而使用mmult函数继续沿用前面的运算思路却仍可以胜任。
公式3与上面公式2的思路基本一致。
公式2运算思路稍有变化,先将出库与入库进行相减,然后再进行累计求和。这种方法也是拓展性比较强的一种公式做法。
/display.asp?tid=3uid=142590B=3t=321416
/display.asp?tid=3uid=142590B=3t=321612
/display.asp?tid=3uid=142590B=3t=323208replyID=1352603
原料
要求:寻找甲原料最早达到库存量50的那一天,并且确定是在哪个仓库达到此库存量。
所在仓库
同样为一个20×20的三角形矩阵
A
C
公式4
公式5
这样可同时对A、B、C三个仓库进行累计求和。
再次增加条件后,整体思路仍然与上面的相似,只是在mmult函数中的array2中需要变换为两维的矩阵,
月份
增加要求,现在需要根据条件进行求和:例如,需要对数据区域中小于50的数字进行求和
求不重复的数据个数:
/display
文档评论(0)