一系列数字中最高 N 个数字之和(不包括重复项)

一系列数字中最高 N 个数字之和(不包括重复项)

我已经看过了对系列中的 N 个最高值求和这并不是我真正需要的。例如

=SUM(LARGE(Range;1); LARGE(Range;2); …; LARGE(Range;N))

问题是,如果数据集中有 5 个数字,而我对最高 4 个数字的总和感兴趣。为此,我查看了该主题对某一列的前 N ​​个元素求和

=SUM(OFFSET(AK$1,1,0,AZ1,1))

如果所有五个条目都不同,则不会出现任何问题。但如果有任何两个条目具有相同的值,那么我希望取其中一个条目进行求和。

换句话说,如果这 5 个数字是 0、1、2、3、4 和 5,则最高 5 个数字的总和为 15。

对于 2、3、4、2、5,相同的代码将返回值 16 并且我希望该值为 14(通过省略第二次重复的 2)

如何实现这一点?

答案1

好的,我想我明白了:

 =SUM(IFERROR((LARGE((IF(FREQUENCY(A1:A5,A1:A5),A1:A5)),ROW(INDIRECT("1:5")))),0))

指定INDIRECT("1:X")最大X的数字。

这是一个数组公式,因此 CSECtrl Shft Entr


如果你使用的是而不是来自柱子-

 =SUM(IFERROR((LARGE((IF(FREQUENCY(TRANSPOSE(A1:E1),TRANSPOSE(A1:E1)),TRANSPOSE(A1:E1))),ROW(INDIRECT("1:5")))),0))

答案2

如果您的值在“范围内”,那么这应该有效:

   =SUMPRODUCT(LARGE(range,{1,2,3,4,5})/COUNTIF(range,LARGE(range,{1,2,3,4,5})))

它不是仅对多次发生进行计数,而是将每次发生都计为“值/总发生次数”,这具有相同的净效果。

相关内容