Mmult经典用法讨论.xls
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Mmult经典用法讨论.xls》由用户(Ronald)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mmult 经典 用法 讨论
- 资源描述:
-
1、Mmult函数用法讨论 引言: sumif/subtotal/countif 这三个函数可用于条件求和、条件计数等功能, 但由于这三个函数的第一参数均要求为单元格区域的引用,因此在一些 复杂条件下,这些函数的使用受到了限制。在这些情况下,运用mmult函 数进行矩阵变换也可以达到类似的运算目的,在一定程度上起到替代以上 这几个函数的作用。 注:用线框包围的单元格区域表示使用了多单元格的区域数组公式。 在论坛中查看此帖 Mmult函数用于数组的条件求和 (替代sumif函数) Mmult函数用于数组的逐级累加 (替代subtotal函数) Mmult函数用于数组的条件计数 (替代countif函
2、数) Mmult函数用于数组的数据比较 (替代countif函数等) Mmult函数用法讨论 sumif/subtotal/countif 这三个函数可用于条件求和、条件计数等功能, 但由于这三个函数的第一参数均要求为单元格区域的引用,因此在一些 复杂条件下,这些函数的使用受到了限制。在这些情况下,运用mmult函 数进行矩阵变换也可以达到类似的运算目的,在一定程度上起到替代以上 包围的单元格区域表示使用了多单元格的区域数组公式。 Mmult函数用于数组的条件求和 (替代sumif函数) Mmult函数用于数组的逐级累加 (替代subtotal函数) Mmult函数用于数组的条件计数 (替代c
3、ountif函数) Mmult函数用于数组的数据比较 (替代countif函数等) 返回目录 示例之一8247863293340 5655609432297 121405347153 2871657817259 2242495257222 3599182095267 2789656142284 691046787237 4454902100290 2663111336149 401531488472606 Sumif401531488472606 Subtotal401531488472606 Mmult401531488472606 对于直接引用单元格区域的情况,使用sumif函数和subt
4、otal函数均可以比较方便地得到各行列方向上的求和值,但如果某些情况下不能直接引用行列区域,例如有更多筛选条件的情况下、或计算内存数组的行列和值时,就需要使用mmult函数来替代。 增加要求,现在需要根据条件进行求和:例如,需要对数据区域中小于50的数字进行求和 Mmult19410012267174 验证19410012267174 再看一个稍微复杂一些的案例:要求得下面这个表格中,型号E最大一个月的产量。 示例之二月份型号产量 3E150.59辅助列做法:高效做法: 5F1690.1810 9C546.342902.35 10F328.6530 4B482.6640 8D1176.7150
5、 10B974.3560 3B519.577640.5 11D752.38105.54 6A1449.290 6B1563.8100 8B1460.16110 5C202.97121597.13 10A290.45max1597.13 6C1447.1公式1($B$30:$B$70=COLUMN(A:L)*($C$30:$C$70=“E“)*($D$30:$D$70)生成一个二维内存数组,以月份为列标题,然后使用mmult对各列纵向数据进行求和运算 2D1784.02公式2和公式3可以看作是公式1的矩阵乘法变形。 9C688.6 8B1801.61如果要同时得到最大产量的月份: 6D1283.
6、68产量月份 6D1728.571965.112 10C76.57 7F1160.74 11D949.18 5B793.78 7A1851.79 7D812.55 2E902.35 6B1747.79 4D537.54 4A184.2类似具体实例: 4D1871.1 6B1947.35 12E1597.13 7F1530.89 8B103.1 11A393.07 2C625.96 2C1972.13 6C1615.83 8E105.54 7E640.5 返回目录 SumifSubtotalMmultMmult验证 3403403407979 2972972973232 153153153100
7、100 2592592594545 222222222113113 2672672677373 2842842846969 2372372371414 2902902904646 1491491498686 公式1公式2公式3 MmultMmultMmult 1965.11965.11965.1 公式1array1: 111 array2: 1月2月3月 D00150.6 对于直接引用单元格区域的情况,使用sumif函数和subtotal函数均可以比较方便地得到各行列方向上的求和值,但如果某些情况下不能直接引用行列区域,例如有更多筛选条件的情况下、或计算内存数组的行列和值时,就需要使用mmul
8、t函数来替代。 增加要求,现在需要根据条件进行求和:例如,需要对数据区域中小于50的数字进行求和 公式1($B$30:$B$70=COLUMN(A:L)*($C$30:$C$70=“E“)*($D$30:$D$70)生成一个二维内存数组,以月份为列标题,然后使用mmult对各列纵向数据进行求和运算 公式2和公式3可以看作是公式1的矩阵乘法变形。 C000 C000 F000 B000 D000 B000 B000 D000 A0160.40 B000 B000 C000 A000 C000 D000 C000 B000 D000 D000 C000 F000 D000 B000 A000 D0
9、01691 E000 B000 D000 A000 D000 B000 E000 F000 B000 A000 C000 C000 C000 E000 E000 1111111111111111 4月5月6月7月8月9月10月11月12月 000000000 对于直接引用单元格区域的情况,使用sumif函数和subtotal函数均可以比较方便地得到各行列方向上的求和值,但如果某些情况下不能直接引用行列区域,例如有更多筛选条件的情况下、或计算内存数组的行列和值时,就需要使用mmult函数来替代。 公式1($B$30:$B$70=COLUMN(A:L)*($C$30:$C$70=“E“)*($D$
10、30:$D$70)生成一个二维内存数组,以月份为列标题,然后使用mmult对各列纵向数据进行求和运算 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 00894.3000000 000000000 00569.1000000 000000000 000000000 000000000 000889.500000 000000000 000000000 000000000 000000010300 0000
11、00000 000000000 000000000 000000000 000000000 000000001965 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 000000000 1111111111111111 111111 返回目录计计算算每每天天的的库库存存量量 示例之一日期入库量SumifSubtotalMmult 6月10日26262626 6月11日56828282 6月12日93175175175 6月13日47222222
12、222 6月14日19241241241 6月15日60301301301 6月16日78379379379 6月17日1380380380 6月18日7387387387 6月19日83470470470 对于直接引用单元格区域的情况,使用sumif函数和subtotal函数均可以比较方便地进行累加求和。 计计算算每每天天的的库库存存量量 日期入库量出库量SumifSubtotalMmultMmult 6月10日37325555 6月11日18320202020 6月12日26424444 6月13日352712121212 6月14日604428282828 6月15日9541828282
13、82 6月16日8713237373737 6月17日910128128128128 6月18日379075757575 6月19日831499999 公式1公式2 条件中增加了“出库量”数据列,需要对此列数据取负值同时计入累计的和值中。虽然用sumif和subtotal函数还是可以完成,但公式长度会随着统计的数据列的增多而大幅增加。 而使用mmult函数则可以同时对多个数据列进行运算,公式长度也比较经济。 公式1中使用了offset的多维引用,同时使用sumif函数进行了降维处理,同时得到入库和出库两列累计和值,然后通过mmult进行横向求和得到结果。 公式2运算思路稍有变化,先将出库与入库
展开阅读全文