You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计Excel中行内状态从1变为0的次数(不含0变1)?

解决Excel中统计每行从1变为0的次数问题

以下是几种实用的解决思路,直接对应你的需求:

方法1:SUMPRODUCT公式(推荐,适用于Excel 2019/365)

在每行的结果单元格(比如DB列)输入公式:
=SUMPRODUCT((B2:CA2=1)*(C2:DA2=0))
按回车即可得到统计结果。

  • 原理:B2:CA2是当前行的前一周状态列,C2:DA2是后一周状态列。当前一周为1且后一周为0时,两个条件的乘积为1,SUMPRODUCT会把所有符合条件的1累加,就是你要的次数。
  • 对应你的示例:Item 1代入公式后会计算出3,Item 2计算出1,完全匹配需求。

方法2:数组公式(兼容旧版Excel)

如果用的是2016及更早的Excel版本,输入以下公式后按Ctrl+Shift+Enter确认(不是普通回车):
=SUM(IF((B2:CA2=1)*(C2:DA2=0),1,0))

  • 原理:和SUMPRODUCT逻辑一致,通过数组遍历每行的相邻列,判断1→0的转换,SUM累加符合条件的次数。

方法3:VBA自定义函数(适合大量数据或重复使用)

如果表格行数极多,或者需要频繁调用这个统计逻辑,可以写一个自定义函数:

  1. 按Alt+F11打开VBA编辑器,插入一个新模块;
  2. 粘贴以下代码:
Function Count1ToZero(rng As Range) As Integer
    Dim prevVal As Variant
    Dim count As Integer
    count = 0
    prevVal = rng.Cells(1).Value
    For Each cell In rng.Cells
        If prevVal = 1 And cell.Value = 0 Then
            count = count + 1
        End If
        prevVal = cell.Value
    Next cell
    Count1ToZero = count
End Function
  1. 返回Excel,在结果单元格输入=Count1ToZero(B2:DA2)即可。
  • 原理:函数遍历指定的周次列区域,逐个对比当前值和前一个值,只要出现1→0的转换就计数加1。

内容的提问来源于stack exchange,提问作者Maladorf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 09:45:35