楼主,还在否,我把MMULUT的方式做好了,不知道是否能提高你的速度。公式很简单,还是先上传附件看吧
=====================================
公式为=MMULT(COUNTIF(条件1,彩票数据),{1;1;1})
其中 条件1 和 彩票数据 都是名称定义,只是这里用了最简单的固定位置的引用。一个对应条件1的 数值单元格,一个针对三列彩票数据。
如果能提高效率,我是这么理解MMULT的,这个MMULT是个 区域单元格数组公式,怎么理解呢,如果一个公式一次计算返回一个函数值,那么我就认为是单单元格数组,如果一个公式一次计算并行返回一个行列区域的值,那么我把他们当成是区域单元格数组公式。 那么如果改动一个数据,对于 N*M的单单元格公式来说要进行N*M次的公式计算,而对于MMULT这种区域单元格公式来说只要执行一次计算就可以了。所以效率会高。
这个题我觉得涉及两块内容,看上去都简单,单理解了比较有用。
第一个就是明摆在眼前的:MMULT的公式的运算机理,细得以前有个版主讲过,我只讲一下粗条子的:它的参数是两个矩阵,对我们写公式来说,最一般的比喻可以用一块N*M的方形单元格区域来替代了,我们定为方块1(N行M列)和方块2(M行L列),这里M不是笔误,而是必须遵守的一个规则。它的值也是一个矩阵,并且是 N行L列的。是不是很复杂,哈哈。
这么记吧,方块1 的第一行 和 方块2 的第一列 进行 SUM(方块1 的第一行*方块2 的第一列)的运算 结果作为结果矩阵的第一行,第一列的交叉单元格元素a11。因为是SUM运算,所以喽行列数是有一定要求的。
扩展:
方块1 的第 I 行 和 方块2 的第 J 列 进行 SUM(方块1 的第 I 行*方块2 的第 J 列)的运算 结果作为结果矩阵的第 I 行,第 J 列的交叉单元格元素aij.
光用脑子想有点复杂,你纸上画一下就知道这个很合一般理解的,不用记了,记的是要忘的,不记看它怎么忘,呵呵
===================================
第二个点,就是数组公式的理解,把普通公式的一个单值参数变成一个一维向量,那么值就是一维向量,给点想象力你就会问,如果普通公式的那个单值参数变成二维向量呢,自然结果也编成二维的了。
这里就是COUNTIF(条件1,彩票数据),结果的数据组合形式就和彩票数据平行的,值就是如果该数据存在条件1中就是1,否则就是0,格局是3列,很多行的那种,我们就是要每行 SUM起来,这个就是只要把MMULT的第二参数设置为3行1列的全1 就可以了。好了,渴了。希望你能理解。
这一点很重要哟
[此贴子已经被作者于2008-3-29 19:22:21编辑过]