首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Excel公式,用于计算筛选列中前n%可见行的总和

Excel公式,用于计算筛选列中前n%可见行的总和
EN

Stack Overflow用户
提问于 2019-06-04 20:50:20
回答 3查看 113关注 0票数 0

正如我在标题中所述,我希望计算筛选列中前n%行的总和。由于过滤选项的不同,列中的总行数会有所不同,因此我的公式必须使用不同的n值。

例如:在A列中,我有10行包含从10到1的值(我从大到小对它们进行了排序)。在B列中,我有10个对应的行,包含2个名字:其中4个包含值"Tom",其中6个包含值“曾傑瑞”。当我过滤整个表并只选择包含值“曾傑瑞”的行时,我希望能够计算出相应6个数值的前20%的总和。

EN

回答 3

Stack Overflow用户

发布于 2019-06-04 21:54:27

如果你愿意,这可以在没有任何过滤的情况下工作。

使用E1中B列的条件和您在F1中查找的百分比,并假设我们希望将百分比四舍五入为整数。

D1中的So公式

代码语言:javascript
复制
=SUMPRODUCT(LARGE((B2:B11=E1)*(A2:A11),ROW(A1:INDEX($A:$A,ROUNDUP(COUNTIF(B2:B11,E1)*F1,0)))))
票数 1
EN

Stack Overflow用户

发布于 2019-06-04 21:19:08

所以,在没有你的数据的情况下,我想出了这个,根据你的情况进行编辑...

因此,根据评论,我做了第二个版本:

col中的helper列与sumproduct一起使用,以给出结果...

票数 0
EN

Stack Overflow用户

发布于 2019-06-04 21:52:55

您可以将percentile函数与SUMIFS一起使用,以执行您想要的操作:

代码语言:javascript
复制
=SUMIFS(A:A,B:B,"Jerry",A:A,">="&AGGREGATE(16,7,A1:A10/(B1:B10="Jerry"),0.8))

如果要使用筛选器进行决策:

代码语言:javascript
复制
=SUMPRODUCT(SUBTOTAL(3,OFFSET(A1,ROW(A2:A10)-1,,1))*(A2:A10>=AGGREGATE(16,7,A2:A10,0.8)),A2:A10)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56444281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档