今天一位同学提了一个问题,如果用一般的解题思路还真的有些麻烦。不过使用Excel的“倒减法”却可以轻松解决。

【例】如下图所示。要求在B列计算连续的符合条件(>3)的数字个数。

excel函数公式减法使用教程大全(excel公式设置时很常用公式算法)(1)

分析:

根据条件计算,我们用countif可以轻松解决,如:

=Countif(a:a,">3")

但本题的难点在于要分段统计,本段的区域大小很难确定。

=Countif(?,">3")

本题借用lookup也可以计算出来,但比较麻烦

B2公式:

=IF(OR(A2<=3,A3>3),"",IFERROR(ROW()-LOOKUP(1,0/(A$2:A2<3),ROW(A$2:A2)),ROW()-1))

如果用倒减法,公式将变得简单很多:

=IF(OR(A2<=3,A3>3),"",COUNTIF(A$2:A2,">3")-SUM(B$1:B1))

公式说明:

IF(OR(A2<=3,A3>3),"":如果A列当前行<=3或下一行大于3,则公式返回空。

COUNTIF(A$2:A2,">3")-SUM(B$1:B2):利用COUNTIF函数统计A列当前行以前共有多少个大于3的数字,然后减去B列已有结果。这里一定要注意区域的引用方式。

补充:所谓倒减法,就是利用本列公式已计算的结果进行倒推的算法。是excel公式设置时很常用的一种公式算法,希望同学们能熟练掌握。