ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > 函数与公式 > 介于最值对应行之间的数字求和

介于最值对应行之间的数字求和

作者:绿色风 分类: 时间:2022-08-18 浏览:189
楼主
Zaezhong
大年三十,祝大家新年快乐
A列隐藏了,其中A2:A27内的公式为
  1. =RAND()
,B2:B27为不重复的随机值


 
题目说明:
1、请计算位于最值(最大值,最小值)对应行之间的数字之和,(在附件中已经用条件格式标出)也即求B列颜色区域的数值和(上图情况下求B5:B10区域和)
2、C列已经标识了最大最小值,以及B列的条件格式产生的颜色仅仅用于判断最值,不做他用
3、要求公式结果可以适合数据变化
4、不使用名称以及辅助单元格
5、无需上传附件,贴出公式说明是否数组公式即可
评分细则:
1、正确结果加技能分3分,思路不同的多种解法每多一种加2分
2、非数组公式额外加5分魅力值,多种方法时魅力值加10
PS:评分请版主帮评。
答题期限:2月17日
介于最大值行与最小值行间的数字求和.rar
介于最大值行与最小值行间的数字求和~~2003版.rar
2楼
biaotiger1
非数组1:
  1. =SUM(OFFSET(B1,MIN(MATCH({10,35},B2:B27,)),,MAX(MATCH({10,35},B2:B27,))-MIN(MATCH({10,35},B2:B27,))+1))
非数组2:
  1. =ABS(SUM(OFFSET(B2,,,MAX(MATCH({10,35},B1:B27,)-1)))-SUM(OFFSET(B1,,,MIN(MATCH({10,35},B1:B27,))-1)))
3楼
laowuwyx
重在参与,先抛一个砖头出来。
=SUM(INDIRECT("b"&MIN(MATCH(MIN(B:B),B:B,),MATCH(MAX(B:B),B:B,))&":b"&MAX(MATCH(MIN(B:B),B:B,),MATCH(MAX(B:B),B:B,))))
=SUM(OFFSET(B1,MATCH(MIN(B:B),B:B,)-1,,SUM(MATCH(SMALL(B:B,{1,26}),B:B,)*{-1,1})+IF(SUM(MATCH(SMALL(B:B,{1,26}),B:B,)*{-1,1})>0,1,-1)))
=ABS(SUM(OFFSET(B1,,,MATCH(MAX(B:B),B:B,)))-SUM(OFFSET(B1,,,MATCH(MIN(B:B),B:B,))))+IF(SUM(MATCH(SMALL(B:B,{1,26}),B:B,)*{-1,1})>0,MIN(B:B),MAX(B:B))
三个均为普通公式。
4楼
kevinchengcw
  1. =SUM(INDIRECT("B"&MATCH(MIN(B2:B27),B2:B27,0)+1&":B"&MATCH(MAX(B2:B27),B2:B27,0)+1))
有点长,公式学得太滥了
5楼
悟空师弟
以下皆为普通公式:
公式1:
  1. =SUM(INDEX(B:B,MIN(MATCH(SUBTOTAL({4,5},B1:B27),B1:B27,))):INDEX(B:B,MAX(MATCH(SUBTOTAL({4,5},B1:B27),B1:B27,))))
公式2:
  1. =SUM(INDIRECT("B"&MIN(MATCH(SUBTOTAL({4,5},B1:B27),B1:B27,))&":B"&MAX(MATCH(SUBTOTAL({4,5},B1:B27),B1:B27,))))
公式3:
  1. =SUBTOTAL(9,OFFSET(B1,MIN(MATCH(SUBTOTAL({4,5},B2:B27),B2:B27,)),,MMULT(SMALL(MATCH(SUBTOTAL({4,5},B1:B27),B2:B27,),{1,2}),{-1;1})+1))
公式4:
  1. =SUMPRODUCT((ROW(2:27)>=MIN(MATCH(SUBTOTAL({4,5},B:B),B:B,)))*(ROW(2:27)<=MAX(MATCH(SUBTOTAL({4,5},B:B),B:B,)))*B2:B27)
公式5:
  1. =SUM(INDIRECT(MIN(MATCH(SUBTOTAL({4,5},B:B),B:B,))&":"&MAX(MATCH(SUBTOTAL({4,5},B:B),B:B,))) B:B)
6楼
piny
非数组
  1. =SUM(INDIRECT("B"&MATCH(MIN(B:B),B:B,)&":B"&MATCH(MAX(B:B),B:B,)))
  1. =SUBTOTAL(9,OFFSET(B1,MIN(MATCH(MAX(B:B),B:B,),MATCH(MIN(B:B),B:B,))-1,,ABS(MATCH(MIN(B:B),B:B,)-MATCH(MAX(B:B),B:B,))+1))
  1. =SUBTOTAL(9,OFFSET(B1,,,MAX(MATCH(MAX(B:B),B:B,),MATCH(MIN(B:B),B:B,))))-SUBTOTAL(9,OFFSET(B1,,,MIN(MATCH(MAX(B:B),B:B,),MATCH(MIN(B:B),B:B,))-1))
7楼
LCinderella
非数组,取巧
  1. =SUM(OFFSET(B1,MIN(MATCH({10,35},B2:B27,)),,ABS(SUM(MATCH({10,35},B2:B27,)*{1,-1}))+1))
  1. =SUM(INDIRECT("b"&MATCH(MIN(B:B),B:B,)&":b"&MATCH(MAX(B:B),B:B,)))

8楼
pzh130
=SUM(INDIRECT("B"&MATCH(MAX(B2:B27),B2:B27,)+1&":B"&MATCH(MIN(B2:B27),B2:B27,)+1))
9楼
水星钓鱼
非数组公式
=SUM(INDIRECT("B"&MATCH(MIN(B:B),B:B,)):INDIRECT("B"&MATCH(MAX(B:B),B:B,)))
10楼
涅磐86970
=SUMPRODUCT(OFFSET(INDIRECT("B"&MATCH(MAX($B$2:$B$27),B:B,)),,,MATCH(MIN($B$2:$B$27),B:B,)-MATCH(MAX($B$2:$B$27),B:B,)))+MIN($B$2:$B$27)

SUMPRODUCT(OFFSET(B1,MATCH(MAX(B:B),B:B,)-1,,MATCH(MIN(B:B),B:B,)-MATCH(MAX(B:B),B:B,)))+MIN(B:B)
11楼
zm0115
普通公式
=SUM(INDEX(B1:B27,MATCH(10,B1:B27,)):INDEX(B1:B27,MATCH(35,B1:B27,)))
12楼
rongjun
普通公式:
  1. =SUM(SUBTOTAL(9,OFFSET(B1,,,LARGE(MATCH(SUBTOTAL({4,5},B:B),B:B,),{2,1})-{1,0}))*{-1,1})
13楼
XIAO_JUN
=SUMPRODUCT(OFFSET(B1,MIN(MATCH(SMALL(B2:B27,{1,26}),B2:B27,)),,ABS(SUM(MATCH(SMALL(B2:B27,{1,26}),B2:B27,)*{1,-1}))+1,))

普通公式
14楼
wjc2090742
非数组公式不难啊,用很直接的思路写就行了。
  1. =SUBTOTAL(9,OFFSET(B1,MIN(MATCH(MAX(B2:B27),B1:B27,),MATCH(MIN(B2:B27),B1:B27,))-1,,MAX(MATCH(MAX(B2:B27),B1:B27,),MATCH(MIN(B2:B27),B1:B27,))-MIN(MATCH(MAX(B2:B27),B1:B27,),MATCH(MIN(B2:B27),B1:B27,))+1))
非数组公式
  1. =SUMPRODUCT(B2:B27*(ROW(2:27)>=MIN(MATCH(QUARTILE(B2:B27,{0,4}),B1:B27,)))*(ROW(2:27)<=MAX(MATCH(QUARTILE(B2:B27,{0,4}),B1:B27,))))
还是稍微写短点,好在不是要求最短字符数,非数组公式
  1. =ABS(SUMPRODUCT(SUBTOTAL(9,OFFSET(B1,,,SMALL(MATCH(QUARTILE(B2:B27,{0,4}),B1:B27,),{1,2})-{1,0}))*{1,-1}))

上面公式对应的数组公式:
  1. =ABS(SUM(SUBTOTAL(9,OFFSET(B1,,,SMALL(MATCH(SMALL(B2:B27,{1,26}),B1:B27,),{1,2})-{1,0}))*{1,-1}))
15楼
wjc2090742
发现上楼的公式,abs用的多余,而且即使用sum,也仍然是普通公式,昨天才被草版批评过呢。留个记号,以后多多留心。最后一个公式改成:
  1. =SUM(SUBTOTAL(9,OFFSET(B1,,,SMALL(MATCH(SMALL(B2:B27,{1,26}),B1:B27,),{1,2})-{1,0}))*{-1,1})


上楼第2个公式的简化,这里取巧了,但是思路是成立的,就不写完整的了:
  1. =SUM(MMULT((ROW(2:27)<=SMALL(MATCH({35,10},B:B,),{1,2})-{1,0})*B2:B27,{-1;1}))


均为普通公式。
16楼
wcymiss
  1. =SUM(INDEX(B:B,MATCH(35,B:B,)):INDEX(B:B,MATCH(10,B:B,)))
17楼
wjc2090742
还是我家猪猪跟我比较亲,一样多用一个abs
18楼
Zaezhong
本次的题目很简单,主要在于收集思路,考虑到是过年时分,在评分上面有增加具体如下


 
评分.rar
19楼
Zaezhong
本来是想应大头版主要求上传一个2003版本的附件的,但是操作上居然取消了回复仅楼主可见,昨天没有发现只好开帖了:

2
楼:公式1和公式2原理相同利用Offset函数生成引用区域,只是表示不同,但是在题目中没有要求思路不同才算不同的方法,故算2个答案


3
楼:公式1indirect函数取得引用区域,公式可以简化,因为indirect(“b10:b3”)indirect(“b3:b10”)是一样的

                   公式2思路还是用Offset函数取得引用,后面的if函数部分用于判断是最大值在上还是最小值在上
                   公式3abs部分计算区域的和,由于有一个最值算了2次,需要重新减去,后面部分类似公式2

4
楼:参考3楼公式1,同样可以简化


5
楼:公式1INDEX函数取代indirectsubtotal部分取得最大最小值

                   公式2参考3楼公式1
                   公式3small函数用于将小的序列号排在前,保证Mmult结果为正数
                   公式4实际为多条件求和的一个变现,介于最值之间的行返回1,其他返回0
                   公式5实际为公式2的另外一种表达方式,将其算为一中方法,原因同2

6
楼:公式14

                   公式2Offset的第二参数为最大最小值中的较小者,abs部分同样是为了保证该部分的结果为正
                   公式33楼的公式3类似,同样是用一个大的区域减去一个较小区域

7
楼:公式16楼公式2

                   公式2参考6楼公式13楼公式1可以简化到该情况

8
楼:公式同4


9
楼:同8楼,表示方法不同而已,直接用了引用函数的表示方式


10
楼:基本思路为用Offset函数支持负数的特点取得引用区域


11
楼:同5楼公式1,只是取巧了


12
楼:原理同5楼公式3


13
楼:同7楼公式1


14
楼:公式15楼公式3

                   公式25楼公式4
                   公式312楼公式一样,只是在取最值的时候用了quartile函数

15
楼:公式214楼公式2的一个变身


16
楼:同11
20楼
鬼狐
为什么用rand之后,就不支持数组了呢???
=SUM(SUBTOTAL(9,OFFSET(B1,,,SMALL(MATCH(SUBTOTAL({4,5},B:B),B:B,),{1,2})-{1,0}))*{-1,1})数组,但是公式审核到最后一步的时候错误

以前一直都没注意有这个限制(因为很少用rand)
好像是不支持match
21楼
w83365040371
  1. =SUM(INDIRECT(TEXT(SUM(RIGHT(QUARTILE(B2:B27*100+ROW(2:27),{0,4}),2)*{100,1}),"!b00!:!b00")))

免责声明

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

评论列表
sitemap