当前位置: 首页 > news >正文

数据处理场景题:用户积分过期重置

场景描述

业务背景

某电商平台为了提升用户活跃度,推出了"积分有效期"制度:

  • 积分有效期:从获得积分之日起 N 个月内必须使用
  • 过期规则:超过有效期未使用的积分将自动清零
  • 重置逻辑
    • 如果当前日期 > 积分到期日期 积分余额 > 0,则将积分清零
    • 如果积分余额 = 0,直接标记为"已过期"

题目要求

原始数据

请根据以下用户积分台账数据,处理后得出每个用户的积分状态:

用户ID 用户名称 积分类型 获得积分日期 积分余额 有效期(月)
U001 张三 购物积分 2025-01-15 1500 12
U002 李四 购物积分 2025-03-20 0 6
U003 王五 注册积分 2025-06-10 500 3
U004 赵六 购物积分 2025-08-25 2000 6
U005 钱七 购物积分 2025-01-05 800 12
U006 孙八 购物积分 2025-09-01 100 3
U007 周九 购物积分 2025-02-28 3000 12
U008 吴十 注册积分 2025-10-15 200 6

处理要求

  1. 计算积分到期日期:积分到期日期 = 获得积分日期 + 有效期(月)
  2. 判断当前日期状态:假设当前日期为 2026-04-21
  3. 计算剩余有效天数:剩余有效天数 = 积分到期日期 - 当前日期
  4. 判断积分状态
    • 如果当前日期 > 积分到期日期 且 积分余额 > 0 → 已过期(待清零)
    • 如果当前日期 > 积分到期日期 且 积分余额 = 0 → 已过期
    • 如果当前日期 <= 积分到期日期 → 有效
  5. 计算应清零积分:对于"已过期(待清零)"的用户,记录需要清零的积分

输出要求

生成一份处理结果表,包含以下字段:

  • 用户ID
  • 用户名称
  • 积分类型
  • 获得积分日期
  • 积分余额
  • 有效期(月)
  • 积分到期日期
  • 当前日期
  • 剩余有效天数
  • 积分状态
  • 应清零积分

解析思路

第一步:理解数据关系

flowchart LRA[获得积分日期] --> B[加上有效期月数]B --> C[积分到期日期]C --> D{当前日期比较}D -->|当前日期 > 到期日期| E{积分余额 > 0?}E -->|是| F[已过期-待清零]E -->|否| G[已过期]D -->|当前日期 <= 到期日期| H[有效]

第二步:计算积分到期日期

公式:积分到期日期 = 获得积分日期 + 有效期(月)

以"2026-04-21"作为当前日期进行计算:

用户ID 获得积分日期 有效期(月) 积分到期日期 计算说明
U001 2025-01-15 12 2026-01-15 2025-01-15 + 12个月
U002 2025-03-20 6 2025-09-20 2025-03-20 + 6个月
U003 2025-06-10 3 2025-09-10 2025-06-10 + 3个月
U004 2025-08-25 6 2026-02-25 2025-08-25 + 6个月
U005 2025-01-05 12 2026-01-05 2025-01-05 + 12个月
U006 2025-09-01 3 2025-12-01 2025-09-01 + 3个月
U007 2025-02-28 12 2026-02-28 2025-02-28 + 12个月
U008 2025-10-15 6 2026-04-15 2025-10-15 + 6个月

第三步:判断积分状态

以"2026-04-21"作为当前日期:

用户ID 积分到期日期 剩余天数 积分余额 积分状态 判断逻辑
U001 2026-01-15 -96天 1500 已过期(待清零) 01-15 < 04-21,且余额>0
U002 2025-09-20 -213天 0 已过期 09-20 < 04-21,且余额=0
U003 2025-09-10 -223天 500 已过期(待清零) 09-10 < 04-21,且余额>0
U004 2026-02-25 -55天 2000 已过期(待清零) 02-25 < 04-21,且余额>0
U005 2026-01-05 -106天 800 已过期(待清零) 01-05 < 04-21,且余额>0
U006 2025-12-01 -141天 100 已过期(待清零) 12-01 < 04-21,且余额>0
U007 2026-02-28 -52天 3000 已过期(待清零) 02-28 < 04-21,且余额>0
U008 2026-04-15 -6天 200 已过期(待清零) 04-15 < 04-21,且余额>0

第四步:汇总统计

统计项 数值
总用户数 8
有效用户数 0
已过期用户数 8
其中待清零用户数 7
待清零积分总额 9800

完整数据

原始数据 CSV(用于导入Excel)

用户ID,用户名称,积分类型,获得积分日期,积分余额,有效期月
U001,张三,购物积分,2025-01-15,1500,12
U002,李四,购物积分,2025-03-20,0,6
U003,王五,注册积分,2025-06-10,500,3
U004,赵六,购物积分,2025-08-25,2000,6
U005,钱七,购物积分,2025-01-05,800,12
U006,孙八,购物积分,2025-09-01,100,3
U007,周九,购物积分,2025-02-28,3000,12
U008,吴十,注册积分,2025-10-15,200,6

处理结果 CSV

用户ID,用户名称,积分类型,获得积分日期,积分余额,有效期月,积分到期日期,当前日期,剩余天数,积分状态,应清零积分
U001,张三,购物积分,2025-01-15,1500,12,2026-01-15,2026-04-21,-96,已过期-待清零,1500
U002,李四,购物积分,2025-03-20,0,6,2025-09-20,2026-04-21,-213,已过期,0
U003,王五,注册积分,2025-06-10,500,3,2025-09-10,2026-04-21,-223,已过期-待清零,500
U004,赵六,购物积分,2025-08-25,2000,6,2026-02-25,2026-04-21,-55,已过期-待清零,2000
U005,钱七,购物积分,2025-01-05,800,12,2026-01-05,2026-04-21,-106,已过期-待清零,800
U006,孙八,购物积分,2025-09-01,100,3,2025-12-01,2026-04-21,-141,已过期-待清零,100
U007,周九,购物积分,2025-02-28,3000,12,2026-02-28,2026-04-21,-52,已过期-待清零,3000
U008,吴十,注册积分,2025-10-15,200,6,2026-04-15,2026-04-21,-6,已过期-待清零,200

扩展题目

扩展一:部分使用扣减

如果用户在积分过期前使用了部分积分,剩余积分如何处理?

规则

  • 部分使用后,剩余积分仍需在原到期日前使用
  • 如果过期时积分余额 > 0,仍需清零

示例数据

用户ID,用户名称,获得积分日期,积分余额,已使用积分,有效期月,积分到期日期
U009,陈十一,2025-07-01,300,200,6,2026-01-01
U010,刘十二,2025-05-15,1500,1000,12,2026-05-15

扩展二:延期处理

如果业务允许积分延期,最长可延期多久?

规则

  • 延期后到期日期 = 原到期日期 + 宽限期
  • 宽限期统一为 1 个月
  • 延期手续费 = 积分余额的 1%

计算项

  • 延期手续费 = 积分余额 × 1%
  • 延期后到期日期 = 原到期日期 + 1个月

扩展三:多类型积分分别计算

如果用户同时有多种类型的积分,如何处理?

示例数据

用户ID,用户名称,积分类型,获得积分日期,积分余额,有效期月
U011,张三,购物积分,2025-02-01,1000,6
U011,张三,注册积分,2025-01-01,200,12
U011,张三,活动积分,2025-03-15,500,3

参考答案

基础题处理结果

用户ID 积分状态 应清零积分
U001 已过期-待清零 1500
U002 已过期 0
U003 已过期-待清零 500
U004 已过期-待清零 2000
U005 已过期-待清零 800
U006 已过期-待清零 100
U007 已过期-待清零 3000
U008 已过期-待清零 200

汇总:待清零用户数 7 人,待清零积分总计 8100 分

Excel 操作提示

  1. 将原始数据 CSV 导入 Excel
  2. 新增列:积分到期日期、剩余天数、积分状态、应清零积分
  3. 使用公式计算:
    • 积分到期日期 = =EDATE(获得积分日期,有效期月)
    • 剩余天数 = =积分到期日期 - DATE(2026,4,21)
    • 积分状态 = =IF(剩余天数<0, IF(积分余额>0,"已过期-待清零","已过期"),"有效")
    • 应清零积分 = =IF(积分状态="已过期-待清零",积分余额,0)

关联知识

graph TDA[数据处理场景] --> B[日期计算]A --> C[条件判断]A --> D[数据汇总统计]B --> B1[EDATE 函数]B --> B2[DATE 函数]B --> B3[日期差值计算]C --> C1[IF 嵌套]C --> C2[AND 多条件]D --> D1[SUMIF 条件求和]D --> D2[COUNTIF 条件计数]

涉及的 Excel 函数

函数 用途 示例
EDATE 计算指定月数前后的日期 =EDATE(A2, B2)
DATE 构造日期 =DATE(2026,4,21)
DATEDIF 计算日期间差值 =DATEDIF(A2, B2, "D")
IF 条件判断 =IF(A2>B2, "是", "否")
AND 多条件且运算 =IF(AND(A>0,B<0), "符合", "")
SUMIF 条件求和 =SUMIF(C:C,"已过期",E:E)
http://www.jsqmd.com/news/794800/

相关文章:

  • Node.js异步数据库操作:nedb-promises封装原理与实战指南
  • OpenClaw Mattermost插件:为团队协作平台注入AI智能的轻量集成方案
  • Sunshine游戏串流配置终极指南:从入门到性能优化完整手册
  • 从HDP到扩展HDP:双Critic网络如何提升自适应动态规划的稳定性与收敛性
  • 模拟芯片巨头Maxim 2010技术日深度解读:从工艺到应用的创新启示
  • 一本通题解——从递推公式到状态转移:破解“位数问题”中的数字计数
  • 加法器优化:从并行前缀到AXON框架的技术演进
  • 天津隆舜泰金属结构制造推荐理由 - myqiye
  • 采购证书怎么考|2026 年 CPPM 注册职业采购经理报考全攻略(官方授权・全国通用) - 中供国培
  • 钰烽环保的轻骨料混凝土多少钱?价格合理 - 工业设备
  • Tcl/OTcl脚本里lreplace命令的5个实战用法:从替换到删除,新手避坑指南
  • 基于Electron构建macOS效率工具:插件化命令执行与安全实践
  • 在Node.js后端服务中集成Taotoken调用多模型API的详细步骤
  • #2026国内门窗/门窗加盟/门窗定制Top10厂家:佛山等地厂家技术成熟品质可靠 - 十大品牌榜
  • 从‘代码打架’到‘和谐共舞’:用Gogs实战演练多人Git协作全流程(附冲突解决脚本)
  • 2026年干拌型轻骨料混凝土口碑哪家好,钰烽环保如何 - 工业设备
  • 5个技巧让你快速掌握Switch大气层系统
  • 不压价不扣费!西安全品牌黄金回收,收的顶排名第一 - 奢侈品回收测评
  • 终极指南:如何通过浏览器插件实现微信网页版的完整访问方案
  • 别再死记硬背了!用Verilog写FSM,从Mealy/Moore到三段式,我踩过的坑都在这了
  • TAMI-MPC框架:优化边缘计算中的隐私保护机器学习
  • 环境配置与基础教程:数据隐私合规实战:联邦学习框架 Federated YOLO 训练,数据不出厂、模型共进化
  • 选购陶粒混凝土,钰烽环保是好选择吗? - 工业设备
  • 全球供应链重塑下的半导体与PC板行业:工程师的挑战与韧性构建
  • 2026年锅炉安装服务排名,工业锅炉安装好用吗? - 工业品网
  • 2026年政府专项补贴审计品牌推荐,高性价比的公司 - 工业品网
  • 终极指南:如何用Driver Store Explorer彻底清理Windows驱动存储
  • AI辅助职业决策:LangChain与GPT-4构建的辞职分析框架
  • #2026国内门窗厂家TOP10推荐:佛山等地厂家 品质过硬服务完善 - 十大品牌榜
  • 工程决算审计哪家好,中楚会计师事务所怎么样? - 工业设备