反馈已提交

网络繁忙

当前为10.0版本文档,只有最新版本的文档支持在线编辑修改,如果想创建/编辑文档,请移步至 最新版帮助文档

跨层累计

  • 文档创建者:文档助手1
  • 历史版本:29
  • 最近更新:Leo.Tsai 于 2021-06-18
  • 1. 概述

    1.1 应用场景

    跨层累计:不按分组进行累计,而是按照从上到下的顺序一直求累加和。

    例如下图示例,对 2010 - 2011 年进行跨层累计。

    2021-06-18_10-34-01.png

    1.2 实现思路

    通过公式IF(&B2 > 1, C2 + D2[B2:-1], C2 + D2[A2:-1,B2:!-1])进行跨层累计。

    2. 示例

    2.1 数据准备

    新建普通报表,新建数据查询 ds1 ,SQL语句为:

    SELECT STRFTIME('%Y',订购日期) AS 年份,STRFTIME('%m',订购日期) AS 月份,应付金额

    FROM 订单

    WHERE STRFTIME('%Y',订购日期) IN ('2010','2011')

    1623294427106300.png

    2.2 报表设计

    如下图设计表格,将 ds1 中的字段拖到 A2、B2、C2 ,D3 单元格用于计算跨层累计数据。

    2021-06-18_10-32-21.png

    D3 单元格公式为:IF(&B2 > 1, C2 + D2[B2:-1], C2 + D2[A2:-1,B2:!-1]),公式拆解后的说明如下表所示:

    公式拆解说明
    IF(A, B, C)条件表达式,如果A为真,返回B,否则,返回C
    &B2 > 1条件表达式一部分,判断月份是不是第一个月
    D2[B2:-1]

    求上一次累计结果,即上一个 B2(上月)对应的 D2 的值

    D2[A2:-1, B2:!-1]

    求上一组最后一个累计结果,即上一个 A2(上一年)中 B2 扩展出来的最后一个对应的 D2 的值

    IF(&B2 > 1, C2 + D2[B2:-1], C2 + D2[A2:-1,B2:!-1])如果&B2>1,从第二月开始,求上一次累计结果加该月金额;如果 B2 为第一个月,求上一组最后一个累计结果加上当前月的金额

    2.3 效果预览

    保存模板,点击分页预览,如下图所示:

    2021-06-18_10-34-01.png

    支持 App 端和 HTML5 端预览,效果如下图所示:

    1623983813483211.jpg

    3. 模板下载

    点击下载模板:跨层累计.cpt

    附件列表


    主题: 报表专题
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览

    售前咨询电话

    400-811-8890转1

    在线技术支持

    请前往「服务平台」,选择「在线支持」

    热线电话:400-811-8890转2

    总裁办24H投诉

    热线电话:173-1278-1526