ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > 综合应用 > 如何求出各组数据众数之和(二)

如何求出各组数据众数之和(二)

作者:绿色风 分类: 时间:2022-08-18 浏览:164
楼主
rongjun
【题目】: 求各组数据众数之和(借fangjianp网友的题目改编)

 
【说明】:
1、假设数据区的数据为1-20的整数;
2、每行数据作为一组,求取各组数据众数之和(众数:即一组数据中出现次数最多的数据);
3、当一组数据中存在多个众数时,要全部计算在内;
4、当一组数据中不存在众数时,按0计算;

【要求】:
1、方法不限,答题时请注明适用版本;
2、方法具备通用性和扩展性;

【评分】:
1、非函数解法,或使用辅助列和定义名称解题,可得1-5技能分;
2、使用函数与公式解题,且不使用辅助列和定义名称,可获得4-8技能分;
3、精彩答案可再获得1-3技能分。

答题截止日期:2011-6-30


如何求出各组数据众数之和(二)——题目.rar
2楼
wp8680
  1. =SUM(IF(COUNTIF(A2:I2,A2:I2)=2,A2:I2,0))/2+SUM(IF(COUNTIF(A2:I2,A2:I2)=3,A2:I2,0))/3+SUM(IF(COUNTIF(A2:I2,A2:I2)=4,A2:I2,0))/4+SUM(IF(COUNTIF(A2:I2,A2:I2)=5,A2:I2,0))/5+SUM(IF(COUNTIF(A2:I2,A2:I2)=6,A2:I2,0))/6+SUM(IF(COUNTIF(A2:I2,A2:I2)=7,A2:I2,0))/7+SUM(IF(COUNTIF(A2:I2,A2:I2)=8,A2:I2,0))/8+SUM(IF(COUNTIF(A2:I2,A2:I2)=9,A2:I2,0))/9
我这个公式是没有人愿意这么做的,但也能解决。先回个贴,再想想有没有更好的办法吧。

答案不全,不好意思,没理解全面题意。补句话,不修改了。
3楼
wp8680
  1. =SUM((1/COUNTIF(A2:I2,A2:I2))*A2:I2)-SUM(IF(COUNTIF(A2:I2,A2:I2)=1,A2:I2,0))
然后竖着求和
附件内二种方法
如何求出各组数据众数之和(二)——题目.rar

被我解个简单的些了吧。
再想想有没有其它办法
4楼
Zaezhong
  1. =SUM((TEXT(RIGHT(SMALL(--(ROW(2:8)&TEXT(COUNTIF(OFFSET(A1,ROW(1:7),,,9),COLUMN(A:T)),"[>1]0;\0")),ROW(1:7)*20)),"0;;-1;")-COUNTIF(OFFSET(A1,ROW(1:7),,,9),COLUMN(A:T))=0)*COLUMN(A:T))
2003可以通过,这样应该没有问题了
5楼
开心妙妙
学习,好好学习
6楼
xihabang
献丑了 ..不知道对不
如何求出各组数据众数之和(二)——题目 副本.zip
7楼
kevinchengcw
  1. Function XSum(Rng As Range)
  2. On Error GoTo Skip
  3. Application.Volatile
  4. Dim R As Range, Dic As Object, Str$, Arr, N&, I&, T&
  5. Set Dic = CreateObject("scripting.dictionary")
  6. For Each R In Rng
  7.     Str = CStr(R.Value)
  8.     If Dic.exists(Str) Then
  9.         Dic(Str) = Dic(Str) + 1
  10.     Else
  11.         Dic.Add Str, 1
  12.     End If
  13. Next R
  14. Arr = Dic.keys
  15. I = WorksheetFunction.Max(Dic.items)
  16. T = 0
  17. For N = LBound(Arr) To UBound(Arr)
  18.     If Dic(Arr(N)) = I Then T = T + Dic(Arr(N))
  19. Next N
  20. Set Dic = Nothing
  21. XSum = T
  22. Exit Function
  23. Skip:
  24. XSum = "Error"
  25. End Function
自定义公式
8楼
wp8680
在K2中输入数组公式并下拉:
  1. =SUM((IF(COUNTIF(A2:I2,A2:I2)>1,COUNTIF(A2:I2,A2:I2),0)=MAX(COUNTIF(A2:I2,A2:I2)))*A2:I2)/MAX(COUNTIF(A2:I2,A2:I2))

再在K9中输入求和:
  1. =SUM(K2:K8)

公式2003至2010通用。

如何求出各组数据众数之和(二)——题.rar
9楼
wp8680
如何求出各组数据众数之和(二)——题.rar
10楼
wangg913
  1. =SUM(IF(TEXT(COUNTIF(OFFSET(A1:I1,ROW(1:7),,,COLUMN(A:I)),A2:I8),"[>1];")=RIGHT(SMALL(ROW(2:8)*10+COUNTIF(OFFSET(A1:I1,ROW(1:7),),A2:I8),ROW(1:7)*9)),A2:I8))
还是比较复杂,回头简化一下。
11楼
zm0115
mode_mult 函数 适用于 2010

如何求出各组数据众数之和(二)——zm0115.rar
12楼
liuguansky
  1. =SUM((COUNTIF(OFFSET(A1:I1,8-ROW(1:7),),COLUMN(A:T))=1*TEXT(RIGHT(LARGE(COUNTIF(OFFSET(A1:I1,ROW(1:7),),COLUMN(A:T))%+ROW(1:7),ROW(1:7)*20-19)),"[>1];-1"))*COLUMN(A:T))
13楼
君柳
公式错误,修改,动画就不重录了

1、A20单元格数组公式右拖下拉
  1. =(MAX(COUNTIF($A11:$I11,$A11:$I11))>1)*MAX(COUNTIF($A11:$I11,$A11:$I11))<>COUNTIF($A11:A11,A11)
2、查找"t”,查找范围“值”,查找全部,清除
3、复制辅助区域,选择性粘贴——“数值”和“跳过空单元格”,利用SUM函数忽略逻辑值的特性得出结果
4、美观考虑,将FALSE全部删除。

适用版本:2003、2007、2010


 
14楼
君柳
公式错误,修改

1、条件格式
  1. =(MAX(COUNTIF($A11:$I11,$A11:$I11))>1)*MAX(COUNTIF($A11:$I11,$A11:$I11))<>COUNTIF($A11:A11,A11)

2、CTRL+CC,点击剪贴板内容粘贴,将条件格式颜色转为实际填充颜色
3、查找填充颜色单元格,清除内容

适用版本:2007、2010



 
15楼
君柳
来个“十八弯”,绕晕荣版


1、透视表——多重合并计算数据区域
2、利用透视表转换数据排列方式
3、合并计算
4、分列
5、辅助列数组公式,按辅助列筛选
  1. =(MAX(($F$2:$F$54=F2)*$H$2:$H$54)=H2)*(H2>1)

6、在筛选状态下SUM



 
16楼
Violet_Universe
2003及以上版本通用
  1. =SUM((LOOKUP(ROW(1:63),ROW(1:64),FREQUENCY(A2:I8+ROW(1:7)*100,SMALL(A2:I8+ROW(1:7)*100,ROW(1:63))))+CEILING(ROW(1:63),9)/9*10=LOOKUP(ROW(1:63)-1,(ROW(1:7)-1)*9,SMALL(LOOKUP(ROW(1:63),ROW(1:64),FREQUENCY(A2:I8+ROW(1:7)*100,A2:I8+ROW(1:7)*100))+CEILING(ROW(1:63),9)/9*10,ROW(1:7)*9)))*TEXT(LOOKUP(ROW(1:63),ROW(1:64),FREQUENCY(A2:I8+ROW(1:7)*100,SMALL(A2:I8+ROW(1:7)*100,ROW(1:63)))),"[>1]1;\0")*MOD(SMALL(A2:I8+ROW(1:7)*100,ROW(1:63)),100))
17楼
fangjianp
  1. =SUM((--TEXT(MOD(SMALL(COUNTIF(OFFSET(A1,ROW(1:7),,,9),COLUMN(A:T))+ROW(1:7)/1%,ROW(1:7)*20),100),"[>1]0;-1")=COUNTIF(OFFSET(A1,ROW(1:7),,,9),COLUMN(A:T)))*COLUMN(A:T))
数组公式,公式长度:168(含“=”)
18楼
bluexuemei
  1. =SUM((SMALL(ROW(1:7)*100+COUNTIF(OFFSET(A2:I2,ROW(1:7)-1,),COLUMN(A:T))*10,ROW(1:7)*20)=ROW(1:7)*100+COUNTIF(OFFSET(A2:I2,ROW(1:7)-1,),COLUMN(A:T))*10)*(COUNTIF(OFFSET(A2:I2,ROW(1:7)-1,),COLUMN(A:T))>1)*COLUMN(A:T))
数组公式
19楼
卢子
能力有限,搞了个辅助区域,适用版本10
如何求出各组数据众数之和(二)——题目.rar
20楼
sharprain
  1. =SUM(IF(FREQUENCY(A2:I8+(ROW(1:7)-1)/1%,INT((ROW(1:140)-1)/20)/1%+MOD(ROW(1:140)-1,20)+1)>1,MOD(ROW(1:140)-1,20)+1,))
数组公式,以前没有这么用过,不知是够合适。
21楼
rongjun
跟10楼差不多
  1. =SUM((TEXT(COUNTIF(OFFSET(A1,ROW(1:7),,,COLUMN(A:I)),A2:I8),"[>1];")=RIGHT(SMALL(ROW(1:7)+COUNTIF(OFFSET(A1:I1,ROW(1:7),),A2:I8)%,ROW(1:7)*9)))*A2:I8)
22楼
wcymiss
学习了
23楼
bluexuemei
头版好公式,我觉得OFFSET(A1:I1,ROW(1:7),,,COLUMN(A:I))可以简化为OFFSET(A1,ROW(1:7),,,COLUMN(A:I))
24楼
Aixcdr
谢谢楼主  

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap