所以我有一列 A,如下所示:
I
15
0
3
15
M
8
0
8
21
Q
0
5
0
0
我可以找到最大值=MAX(A1:A100) 我可以找到最小值=小(A1:A100,1)
我如何找到最大的前一个和再前一个。我可以使用 Large 来调用第 N 个值,但是我如何知道函数计数了多少个 N 值,以便我可以知道它使用哪些位置来引用最后 3 个(最大的和前 2 个)?
忽略重复项 - 示例中最大的是 21,前一个是 15,再前一个是 8。如果我执行 =LARGE(A1:A100,3),它将返回 15,因为列中有两个。而我正在寻找 8 作为第三大值。
下面您将看到互联网上热心人士提供了数据透视表、数组公式解决方案,我终于能够做一个简单的公式了。
如果您坚持我们拥有一切,您可以为这项工作提供 vba,否则已经足够了。
答案1
答案2
答案3
在所有帮助的帮助下,我开始思考我是否可以做数据透视表所做的事情,然后我想到了这个:(甚至是我自己做的,哈哈)
=IF(COUNTIF($A$1:A1,A1)<=1,A1,"")
制作与感兴趣的数据平行的列可以解决这个问题。(例如粘贴在 C1 中并复制下来)
它提供了初始的重复数据删除列表,您可以以此为基础来处理大数据和小数据。作为一个简单的解决方案,它不应该干扰您在文档中可能进行的任何易变内容。而我自己可以不用 vba。如果有混合数据类型,任何意外转变都应该可以用 IFERROR 来控制。
答案4
@helena4 尝试这个数组公式
=LARGE(IF(A1:A15 < LARGE(A1:A15,1),A1:A15),3)
然后按Ctrl+Shift+Enter
它将忽略重复项。