求计算连续升降序序列长度的Excel公式
Excel计算最长连续升序/降序序列长度的公式
最长连续降序序列
针对你的示例数据(A1:A10为 1,4,8,26,16,7,2,1,8,10),以下公式可计算最长连续降序序列的长度:
Excel 365/2021(支持动态数组)
直接输入以下公式即可:
=MAX(SCAN(1,A2:A10,LAMBDA(a,b,IF(b<A1:A9,a+1,1))))
原理:SCAN 从第二个数据开始,逐个与前一个单元格比较,若当前值小于前一个(满足降序),则累计长度加1,否则重置为1。最后用MAX提取所有累计长度中的最大值。
旧版Excel(不支持动态数组)
输入公式后需按 Ctrl+Shift+Enter 作为数组公式确认:
=MAX(FREQUENCY(IF(A2:A10<A1:A9,ROW(A2:A10)),IF(A2:A10>=A1:A9,ROW(A2:A10)))+1)
原理:先标记所有满足降序的位置,用FREQUENCY统计连续满足的区间长度,最后加1(修正间隔数与实际序列长度的差值),再取最大值。
最长连续升序序列
只需将公式中的比较符号反向即可:
Excel 365/2021
=MAX(SCAN(1,A2:A10,LAMBDA(a,b,IF(b>A1:A9,a+1,1))))
旧版Excel(数组公式)
=MAX(FREQUENCY(IF(A2:A10>A1:A9,ROW(A2:A10)),IF(A2:A10<=A1:A9,ROW(A2:A10)))+1)
验证结果
将示例数据填入A1:A10后,使用降序公式会得到结果5,与你描述的最长降序序列26>16>7>2>1的长度一致。
内容的提问来源于stack exchange,提问作者Crisanto Brito
相关产品推荐
相关产品推荐

