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

Oracle SQL实现LogIn/LogOut动作的增量计数器需求咨询

实现累计计数器列的方法

针对你需要实现的逐行累计Counter列(LogIn+1、LogOut-1),以下是几种可行的电子表格实现方案,同时说明你用COUNTIF失败的原因:

方案一:直接累加(简单直观)

假设你的数据从第1行表头开始,Action列是C列,Counter列放在D列:

  1. 在D2单元格(对应第一行数据)输入:=IF(C2="LogIn", 1, -1)
  2. 在D3单元格输入:=D2 + IF(C3="LogIn", 1, -1)
  3. 选中D3单元格,下拉填充到所有数据行即可。

这个方法的逻辑是每一行的Counter值等于上一行的Counter加上当前Action对应的增减值,简单易懂。

方案二:用COUNTIF实现(修正你之前的错误)

你之前用COUNTIF失败,大概率是因为引用范围没有固定起始行。正确的公式应该是累计统计到当前行的所有LogIn和LogOut数量,再做差值:
在D2单元格输入:

=COUNTIF($C$2:C2,"LogIn") - COUNTIF($C$2:C2,"LogOut")

然后下拉填充到所有行。

这里的$C$2是绝对引用,固定了统计的起始行,下拉时范围会自动扩展为$C$2:C3、$C$2:C4等,从而实现累计计算。

方案三:SUM数组公式(适合动态数据场景)

如果你的表格可能会插入/删除行,用数组公式更灵活:
在D2单元格输入:

=SUM(IF($C$2:C2="LogIn",1,-1))
  • 如果你用的是Excel 365/2021,直接回车即可;
  • 旧版Excel需要按Ctrl+Shift+Enter作为数组公式确认;
  • Google Sheets直接回车生效。

这个公式会自动对从C2到当前行的所有Action进行判断求和,得到累计Counter值。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 17:11:07