Mmult经典用法讨论.xls

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

Wow + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档