楼主 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 |
- =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 |
- =SUM((1/COUNTIF(A2:I2,A2:I2))*A2:I2)-SUM(IF(COUNTIF(A2:I2,A2:I2)=1,A2:I2,0))
然后竖着求和 附件内二种方法 如何求出各组数据众数之和(二)——题目.rar
被我解个简单的些了吧。 再想想有没有其它办法 。 |
4楼 Zaezhong |
- =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 |
- Function XSum(Rng As Range)
- On Error GoTo Skip
- Application.Volatile
- Dim R As Range, Dic As Object, Str$, Arr, N&, I&, T&
- Set Dic = CreateObject("scripting.dictionary")
- For Each R In Rng
- Str = CStr(R.Value)
- If Dic.exists(Str) Then
- Dic(Str) = Dic(Str) + 1
- Else
- Dic.Add Str, 1
- End If
- Next R
- Arr = Dic.keys
- I = WorksheetFunction.Max(Dic.items)
- T = 0
- For N = LBound(Arr) To UBound(Arr)
- If Dic(Arr(N)) = I Then T = T + Dic(Arr(N))
- Next N
- Set Dic = Nothing
- XSum = T
- Exit Function
- Skip:
- XSum = "Error"
- End Function
自定义公式 |
8楼 wp8680 |
在K2中输入数组公式并下拉:- =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中输入求和:- =SUM(K2:K8)
公式2003至2010通用。
如何求出各组数据众数之和(二)——题.rar |
9楼 wp8680 |
如何求出各组数据众数之和(二)——题.rar |
10楼 wangg913 |
- =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 |
- =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单元格数组公式右拖下拉- =(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、条件格式- =(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、辅助列数组公式,按辅助列筛选- =(MAX(($F$2:$F$54=F2)*$H$2:$H$54)=H2)*(H2>1)
6、在筛选状态下SUM
|
16楼 Violet_Universe |
2003及以上版本通用- =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 |
- =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 |
- =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 |
- =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楼差不多- =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 |
谢谢楼主 |