
正如我在标题中所述,我希望计算筛选列中前n%行的总和。由于过滤选项的不同,列中的总行数会有所不同,因此我的公式必须使用不同的n值。
例如:在A列中,我有10行包含从10到1的值(我从大到小对它们进行了排序)。在B列中,我有10个对应的行,包含2个名字:其中4个包含值"Tom",其中6个包含值“曾傑瑞”。当我过滤整个表并只选择包含值“曾傑瑞”的行时,我希望能够计算出相应6个数值的前20%的总和。
发布于 2019-06-04 21:54:27
如果你愿意,这可以在没有任何过滤的情况下工作。

使用E1中B列的条件和您在F1中查找的百分比,并假设我们希望将百分比四舍五入为整数。
D1中的So公式
=SUMPRODUCT(LARGE((B2:B11=E1)*(A2:A11),ROW(A1:INDEX($A:$A,ROUNDUP(COUNTIF(B2:B11,E1)*F1,0)))))发布于 2019-06-04 21:19:08
所以,在没有你的数据的情况下,我想出了这个,根据你的情况进行编辑...
因此,根据评论,我做了第二个版本:

col中的helper列与sumproduct一起使用,以给出结果...
发布于 2019-06-04 21:52:55
您可以将percentile函数与SUMIFS一起使用,以执行您想要的操作:
=SUMIFS(A:A,B:B,"Jerry",A:A,">="&AGGREGATE(16,7,A1:A10/(B1:B10="Jerry"),0.8))

如果要使用筛选器进行决策:
=SUMPRODUCT(SUBTOTAL(3,OFFSET(A1,ROW(A2:A10)-1,,1))*(A2:A10>=AGGREGATE(16,7,A2:A10,0.8)),A2:A10)


https://stackoverflow.com/questions/56444281
复制相似问题