如何在Excel中计算最长连续亏损区间的总和?
计算最长连续亏损区间的总和
你已经能用=MAX(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16))))算出最长连续负值的次数,现在要针对这个最长区间求和(而非所有负值总和),可以使用以下数组公式:
注:Excel旧版本需按
Ctrl+Shift+Enter确认公式;365/2021及以上版本直接回车即可。
=SUM(INDEX($AB4:$AB16,MIN(IF(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16)))=MAX(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16))),ROW($AB4:$AB16)-ROW($AB4)+1))):INDEX($AB4:$AB16,MAX(IF(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16)))=MAX(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16))),ROW($AB4:$AB16)-ROW($AB4)+1))))
公式逻辑说明
- 沿用原公式的
FREQUENCY函数,定位所有连续负值区间的长度 - 通过
IF匹配出长度等于“最长连续次数”的区间对应的行号,取最小行号作为区间起点,最大行号作为区间终点 - 用
INDEX定位到区间首尾单元格,最终用SUM完成区间求和
如果存在多个长度相同的最长连续亏损区间,上述公式会把所有这些区间的数值一并求和。若只需取第一个出现的最长区间,可使用以下公式:
=SUM(INDEX($AB4:$AB16,MIN(IF(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16)))=MAX(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16))),ROW($AB4:$AB16)-ROW($AB4)+1))):INDEX($AB4:$AB16,MIN(IF(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16)))=MAX(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16))),ROW($AB4:$AB16)-ROW($AB4)+1))+MAX(FREQUENCY(IF($AB4:$AB16<0,ROW($AB4:$AB16)),IF($AB4:$AB16>=0,ROW($AB4:$AB16))))-1))
内容的提问来源于stack exchange,提问作者user27443005
相关产品推荐
相关产品推荐

