1. 概述编辑
本文视频学习请参见专题视频:条件汇总
系统的层次坐标学习计划参见:层次坐标专题
示例一:通过层次坐标,我们还可以进行条件汇总,即对扩展出来的行汇总满足条件的数据信息。如下图所示,汇总订单总额超过 2500 的月份数量:
示例二:如下图所示,可以通过层次坐标计算某一列的特定要求的和、个数、平均值等:
2. 思路编辑
由占比可以知道,我们可以通过Cell[!0]来获取一个单元格扩展出来的所有数据。
在此基础上我们可以通过Cell[!0]{条件}来获取这个单元格扩展出来的所有值中满足条件的数据。
层次坐标以$Cell表示当前 Cell 单元格的值。
3. 操作步骤编辑
3.1 示例一
3.1.1 打开报表
打开报表%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\同期比.cpt。
修改报表如下,增加一汇总行,A4 左父格设置为 A3,每年汇总一次:
3.1.2 条件汇总
选中 C4 单元格,右键单元格选择单元格元素>插入公式,写入公式:=count(B3[!0]{A3 = $A3 && C3 >= 2500}):B3 扩展出的所有月中,满足属于当前年且总额大于或等于 2500 的月份个数。
其中B3[!0]表示 B3 单元格扩展出来的所有数据,不受主格影响,获得 2010 年下的月与 2011 年下的月。
{A3 = $A3 && C3 >= 2500},{}里面是筛选条件,A3 = $A3表示在当前 A3 组内;C3 >= 2500表示总额大于或等于 2500。
注:此处为读者提供一种更为简单的方法,即C4单元格可以直接写入公式:=count(B3{c3>=2500}),同时父格设置与原文相同——设父格为A3
对此简化形式的解读如下:我们不再用“A3 = $A3”作为分组方法,而是直接通过设置父格即可完成对b3单元格的count计算(单元格书写时不必区分大小写)
3. 2示例二
3.2.1 报表设计
新建普通报表,添加数据库查询:select * from STSCORE where CLASSNO="Class4"
如图所示拖入数据列:
设置 B1 数据列扩展方向为橫向扩展;如下图:
同理,设置 A2、B2 单元格为纵向扩展;
3.2.2 条件汇总
在 C2 单元格中,写入公式:SUM(B2{B2 < 60}),B2 扩展出来的列中,满足属于 A2 的 B2 小于 60 的值的和。
其中B2{B2 < 60}表示 B2 单元格扩展出来的列 B2 小于 60 的值。
{B2 < 60},{}里面是筛选条件,B2 小于 60 的值。
D2 的公式为:COUNT(B2{B2 >= 60}),表示计算 B2 中大于 60 的个数;
E2 的公式为:AVERAGE(B2),表示计算 B2 的平均值。
3.2.3 父格设置
C2、D2、E2 单元格的左父格均设置为 A2
4. 预览效果编辑
示例一:
示例二:
在成绩之后分别列出了每个人科目中小于 60 分的分数之和;及格科目数;所有科目的平均分。
注:正常点击分页预览会因为列数过多而分页,此时可以如上图所示,在预览模板的 URL 后增加&__bypagesize__=false。