Excel 同一分类下进行跨行计算

例题描述

Excel 文件记录不同用户的事件发生时间,数据已按 USER ID 和 DATE 列排序,部分数据如下:

A B C
1 USER ID EVENT ID DATE
2 1 4 2020-01-01
3 1 5 2020-01-05
4 1 6 2020-01-13
5 2 7 2020-01-03
6 2 8 2020-01-05
7 2 9 2020-01-06

现在要计算事件真假列isTrue,规则是:同一个USER ID内,第1起事件一定为真,从第2起事件开始,如果与上一真事件的间隔大于等于10天,则该事件为真,其他事件均为假。结果应当如下:

A B C D
1 USER ID EVENT ID DATE isTrue
2 1 4 2020-01-01 1
3 1 5 2020-01-05 0
4 1 6 2020-01-13 1
5 2 7 2020-01-03 1
6 2 8 2020-01-05 0
7 2 9 2020-01-06 0

解法及简要说明

使用 Excel 插件 SPL XLL

在 D1 单元格写入公式:

=spl("=E(?).new(if('USER ID'!='USER ID'[-1],(t=DATE,1),if(DATE-t>=10,(t=DATE,1),0)):isTrue)",A1:C7)

如图:

..

简要说明:

如果本行的 USER ID 与上一行不同,则说明当前行是组内第 1 起事件,此时赋值 isTrue=1,同时临时变量 t= 本行 DATE。如果本行的 USER ID 与上一行相同,则进入组内计算,用临时变量和本行的日期计算间隔,大于等于 10 时赋值 isTrue=1,同时修改临时变量 t= 本行 DATE。

相关推荐

  1. 【vue】前后端不在网络,前端解决

    2024-05-13 12:54:04       48 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-13 12:54:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-13 12:54:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-13 12:54:04       82 阅读
  4. Python语言-面向对象

    2024-05-13 12:54:04       91 阅读

热门阅读

  1. Leetcode 429:N叉树的层次遍历

    2024-05-13 12:54:04       31 阅读
  2. fastjson的漏洞分析和解决方案

    2024-05-13 12:54:04       36 阅读
  3. 【C++学习第15天】STL

    2024-05-13 12:54:04       31 阅读
  4. TensorRT-llm入门

    2024-05-13 12:54:04       36 阅读
  5. Flutter 中的 ListView 小部件:全面指南

    2024-05-13 12:54:04       37 阅读
  6. 学习笔记:IEEE 1003.13-2003【POSIX PSE54接口列表】

    2024-05-13 12:54:04       31 阅读
  7. GNU/Linux - 系统启动流程及rcS脚本介绍

    2024-05-13 12:54:04       28 阅读
  8. Flutter 中的 Image 小部件:全面指南

    2024-05-13 12:54:04       36 阅读
  9. fone脚本常用js方法

    2024-05-13 12:54:04       36 阅读
  10. mysql 日志详解

    2024-05-13 12:54:04       37 阅读