我有一系列数字
0,1,99,5,5,98,9
它们是未分类的,并将保持这种状态
我不能使用宏
我想从公式或数组公式得到答案89
89是此系列中排序时的最大间隙(9到98之间)
我想要一个公式,没有vba,也没有排序我的列或行。
我需要一个公式来对列表进行排序并相对于排序列表减去一个单元格,并给出它创建的差异列表的最大差异。
所以列表变成0,1,5,5,9,98,99
从前一个(na,1,4,0,4,89,1)中减去当前的电流
并给了我最大89.
我的列表是一列7行。
答案 0 :(得分:4)
此公式必须数组输入。在公式中,RNG指的是您输入数字的范围,例如A1:A7
=MAX(LARGE(RNG,ROW(INDIRECT("1:"&-1+COUNT(RNG))))-
LARGE(RNG,ROW(INDIRECT("2:"&COUNT(RNG)))))
输入后,array-enter 一个公式 公式进入单元格或公式栏,按住 ctrl-shift ,同时点击输入。如果你这样做了 正确地说,Excel会在公式周围放置大括号 {...} 。
您可以使用“公式”功能区的“公式审核”选项卡上的“评估公式”选项查看公式的工作原理。
简而言之,该公式通过创建两个数组来工作,这些数组按大小顺序排序。 " K" LARGE函数的值是由ROW创建的数组(INDIRECT序列。第一个返回
{1;2;3;4;5;6}
,第二次返回
{2;3;4;5;6;7}
返回的两个值数组将是:
{99;98;9;5;5;1}
{98;9;5;5;1;0}
从另一个中减去一个得到差异的数组,我们找到MAX。
答案 1 :(得分:1)
MAX(A:A) - LARGE(A:A,2)
给出最大值和第二大值之间的差异。不要将此公式放在A列中。
答案 2 :(得分:1)
以任何顺序将值放在 A1 至 A7 中!
在 B1 中输入:
=RANK(A1,$A$1:$A$7,0)+COUNTIF($A$1:$A1,A1)-1
并通过 B7
向下复制在 C1 中输入:
=INDEX($A$1:$A$7,MATCH(ROW(),B$1:B$7,0))
并通过 C7
向下复制在 D2 中输入:
=C1-C2
并通过 C7
向下复制最后在 E1 中输入:
=MAX(C:C)
列 B 表示列 A 中值的顺序(如果已排序)。列 C 包含排序顺序中列 A 的值。列 D 是差异, E1 给出了所需的答案。这是一个例子: