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

如何用Excel公式将捐赠记录按周期逐月展开

用Excel公式批量展开月度捐赠记录

需求说明

现有活动捐赠成员清单,每位成员按周期按月捐赠,需将包含ID、姓名、捐赠金额、捐赠起止日期、状态的原始表格,展开为按捐赠周期逐月生成单条记录的格式,全程仅用Excel公式实现。

原始表格示例

ID姓名捐赠金额捐赠开始日期捐赠结束日期状态
1Name 13001-Sep-202530-Sep-2025Active
2Name 24001-Sep-202531-Oct-2025Active
3Name 35001-Sep-202530-Nov-2025Active
4Name 42501-Sep-202531-Dec-2025Active

目标展开格式

ID姓名捐赠金额捐赠日期状态
1Name 13001-Sep-2025Active
2Name 24001-Sep-2025Active
2Name 24001-Oct-2025Active
3Name 35001-Sep-2025Active
3Name 35001-Oct-2025Active
3Name 35001-Nov-2025Active
4Name 42501-Sep-2025Active
4Name 42501-Oct-2025Active
4Name 42501-Nov-2025Active
4Name 42501-Dec-2025Active

优化后的Excel公式

针对原公式需逐个处理列的问题,以下公式可批量处理重复列,更简洁易维护:

=LET(
    原始数据, A2:F6,
    起止日期, INDEX(原始数据,,4):INDEX(原始数据,,5),
    月度序列, MAP(INDEX(起止日期,,1), INDEX(起止日期,,2), LAMBDA(开始,结束, EDATE(开始, SEQUENCE(DATEDIF(开始,结束,"m")+1,,0)))),
    重复次数, BYROW(月度序列, LAMBDA(x, ROWS(x))),
    重复基础列, TOCOL(INDEX(原始数据,,{1,2,3,6}),,1),
    展开日期, TOCOL(月度序列,,1),
    HSTACK(
        INDEX(重复基础列, TOCOL(SEQUENCE(ROWS(原始数据))/1^0, REPT(1,重复次数),,1)),
        TEXT(展开日期, "dd-mmm-yyyy")
    )
)

公式说明

  1. 原始数据:定义待处理的原始数据范围(示例为A2:F6,可根据实际表格调整)
  2. 起止日期:提取表格中的捐赠开始、结束日期列
  3. 月度序列:对每一行的起止日期,生成从开始月到结束月的每月1日日期序列
  4. 重复次数:计算每一行需要重复的记录数(即捐赠周期的月数)
  5. 重复基础列:提取需要重复的固定列(ID、姓名、捐赠金额、状态)并转为单列格式
  6. 展开日期:将所有月度日期序列转为单列格式
  7. HSTACK:将重复后的固定列与展开的日期列合并,生成最终的展开表格

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 07:43:23