1. 概述
本文的学习视频如下,如果您需要由浅入深地学习层次坐标可以使用:层次坐标专题
1.1 应用场景
条件汇总:统计满足某些条件的数据个数。
例如下图示例,统计每年应付金额大于2500的月份个数。
1.2 实现思路
通过 count() 函数结合层次坐标条件表达式实现。
2. 示例
2.1 准备数据
新建数据集 ds1,SQL 语句为:
SELECT STRFTIME('%Y',订购日期) AS 年份,STRFTIME('%m',订购日期) AS 月份,应付金额
FROM 订单
WHERE STRFTIME('%Y',订购日期) IN ('2010','2011')
2.2 设计表格
如下图设计表格,将 ds1 中的字段拖到 A2、B2、C2 单元格,C3单元格用于计算条件汇总,统计每年应付金额大于2500的月份个数。
C3 条件汇总公式为:COUNT(C2[!0]{A2 = $A2 && C2 > 2500}),公式拆解后的说明如下表所示:
公式拆解 | 说明 |
---|---|
COUNT( ) | 统计括号里面所有数据的个数 |
C2[!0]{ } | 输出满足大括号里面条件的所有数据 |
A2 = $A2 | 条件表达式一部分,将计算限定在每个分组内,即每个年份各自统计自己的 |
C2 > 2500 | 条件表达式一部分,应付金额需要大于 2500 |
2.3 效果预览
保存报表,分页预览后的效果如下图所示:
支持 App 端和 HTML5 端预览,效果如下图所示:
3. 模板下载
已完成模板可参见:%FR_HOME%\webroot\WEB-INF\reportlets\demo\NewbieGuide\条件汇总.cpt
点击下载模板:条件汇总.cpt
4. 注意事项
普通报表跨 sheet 和决策报表跨报表块时,不支持实现条件汇总。
因为当涉及跨 sheet 或跨报表块时,如果公式中包含了{}这种大括号的条件,则公式无效。详情参见文档:跨sheet或跨报表块使用条件过滤无效