我已经看过了对系列中的 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})))
它不是仅对多次发生进行计数,而是将每次发生都计为“值/总发生次数”,这具有相同的净效果。