在二维表中按特定条件统计最左列的非重复个数
原始数据为一张二维表,从B1至CW1表示100张订单号,从A2至A101表示100种商品。100张订单总共涉及到100种商品(但某一张订单只会涉及到100种商品内的其中几种),B2至CW101中的数字表示某一订单订购某一商品的数量(大多数为1,个别大于1)。现在在103行把这100张订单分成2组(1号组、2号组),要解决的问题是:求每组订单对应商品的种类数(去重),公式写在CV106与CV107单元格中。求解决办法,要求在不把该二维表转换为一维表的前提下,直接在该二维表中解决这个问题,谢谢大神。
=COUNT(0/MMULT((B$2:CW$101=CS106)/1,ROW($1:$100)^0))
数组三键下拉。 试了一下好像不行。
我在CV106单元格中输入“=COUNT(0/MMULT((B$2:CW$101=CS106)/1,ROW($1:$100)^0))”,然后三键确认,再向下拉至CV107。无论103的分组(值为1或2)如何变化,CV106的值都一直是100,CV107的值一直是9。
下图是我将C103至CW103的值全部改为2,仅保留B103为1时的计算结果截图。即便1号分组只有1张订单,商品代码数仍然有100个。
麻烦帮忙看一下需要做何调整,多谢 2楼 大佬 大意 了,漏 了个条件
抄 一下
=COUNT(0/MMULT(($B$103:$CW$103=CS106)*($B$2:$CW$101<>""),ROW(1:100)^0)) =COUNT(0/MMULT(B$2:CW$101*(B$103:CW$103=CS106),ROW($1:$100)^0)) 可以了大神,万分感谢。
另外还想再延伸问一下,我希望在B103至CW103中来分配订单组号(1或2)来使得CV106与CV107的值最小(商品种类数最少),同时也想使得2个分组的件数差不多(CW106与CW107的值趋于相同)。
我把你的公式代入到CV106与CV107之后,通过规划求解的方式来自动分配“1”或“2”到B103至CW103单元格中,目标单元格是CV108最小化(这个是我发贴求助的最终目的),CV108对应公式为Sum(CV106:CV107)。
概括为一句话就是:2个订单分组,每个组的商品种类数最小化,每个组的件数均衡。
请问用规划求解来做,这个思路有没有什么问题?是否还有更好的解法?此时此刻,规划求解已经运行半个多小时了还没结束,我自己觉得我这种思路的运算效率不高。但又想不到其他办法,请大神指点指点,多谢 这个公式也有效,多谢。 个人觉得规 划 求 解 应 该 是合 理 的解法,,但变量 太多。。。。难度 太大,,, 要保证2个条件 估计 不太 现实,,,保 证一个 数 量 大致相等就可 了
页:
[1]