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。

相关推荐
冰心孤城14 小时前
Excel: xls与xlsx格式转换排坑指南
java·前端·excel
金豆呀17 小时前
WPS批量提取Word文档内容生成固定格式Excel表格
word·excel·wps
Access开发易登软件18 小时前
Access 怎么做前后端分离?用 Web API 读写 SQL Server
前端·数据库·人工智能·microsoft·excel·access
红莲凪是2 天前
使用二次封装的Excel COM 组件操作Excel\WPS ET IExcelRange 高级应用
python·excel·wps
用户298698530142 天前
如何使用免费工具在线将 Excel 转换为 XML 格式
人工智能·后端·excel
开开心心就好2 天前
内存清理工具定时自动清理开机自启动
java·开发语言·elasticsearch·ocr·excel·音视频·big data
开开心心就好2 天前
电脑内存优化工具一键释放内存超简单
java·开发语言·macos·arcgis·ocr·excel·音视频
随手工具-Excel, pdf, SQL2 天前
没有 SSMS 导入向导?Excel/CSV 一键生成 SQL Server INSERT 脚本
excel·sql server·在线工具·insert·测试数据·ssms·t-sql
SunnyDays10113 天前
Python 将 Excel(XLS/XLSX)转换为 JSON:导出工作簿、工作表、单元格区域与自定义 JSON 结构
python·json·excel·excel 转 json·导出 excel 到 json·xlsx 转 json·xls 转 json
chatexcel3 天前
ChatExcel AI Word 升级:多模态读资料、按模板生成、智能排版配图,还能批注修订和联动Excel 复核
人工智能·ai·word·excel·ai写作