历史版本23 :条件汇总 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

本文视频学习请参见专题视频:条件汇总

系统的层次坐标学习计划参见:层次坐标专题

示例一:通过层次坐标,我们还可以进行条件汇总,即对扩展出来的行汇总满足条件的数据信息。如下图所示,汇总订单总额超过 2500 的月份数量:

 

示例二:如下图所示,可以通过层次坐标计算某一列的特定要求的和、个数、平均值等:

222

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,每年汇总一次:

左父格设置如图,右键 A4 单元格扩展

222

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"

如图所示拖入数据列:

222

设置 B1 数据列扩展方向为橫向扩展;如下图:

222
同理,设置 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. 预览效果编辑

  • 示例一:

  • 示例二:

222

在成绩之后分别列出了每个人科目中小于 60 分的分数之和;及格科目数;所有科目的平均分。
注:正常点击分页预览会因为列数过多而分页,此时可以如上图所示,在预览模板的 URL 后增加&__bypagesize__=false

5. 已完成模板编辑

1)示例一

模板效果在线查看请点击 条件汇总示例一

已完成模板可参考%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\条件汇总示例一.cpt

点击下载模板

2)示例二

模板效果在线查看请点击 条件汇总示例二

以完成模板可参考%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\条件汇总示例二.cpt

点击下载模板