帆软报表(finereport)间格运算常用公式
1.1在C3(占比)单元格中直接使用占比公式:=PROPORTION(B3);占比:当前值占总值的比例
1.2 计组内占比注:C2[!0]{A2=$A2},表示C2扩展出来地区相同的单元格。sum(C2[!0]{A2=$A2}),表示相同地区内的金额总和,用C2相除是得出的是销量在对应地区内的占比。 层次坐标条件写法B2[!0]{A2=$A2} 表示b2按相同的单元条件扩展出来的的单元格
2.比较:当前值与第一个值做比较 计算公式为:当前值减去第一个值(C2/C2[A2:1])
3.环比:当前值比上月份的值; 计算公式为:当前值除上一个值(Iif(&A2>1,C2/C2[A2:-1],0) 或=MOM(A2, B2) A2为月份,B2为金额
4.同期比: 今年/去年-1 坐标公式;EVAL(CONCATENATE("if(&A3>1,C3/C3[!0]{A3=",A3-1,"&&B3=$B3},0)"))
含义解释:{A3=",A3-1,"&&B3=$B3} 这里表达的意思为:
A3=",A3-1," (指上一年年份)
B3=$B3(月度相同)
5.累计,跨层累计 :写入累计公式=D3[B3:-1] + C3;其中D3[B3:-1]表示B3扩展出来的上一格(上月)中D3的值。
或使用累计=LAYERTOTAL(B3, C3, D3) ; 跨层累计:写跨层累计公式=CROSSLAYERTOTAL(A3, B3, C3, D3)
6.横向交叉累计:
在C3单元格中,写入公式:=B3 + C3[;B2:-1]:当前月份的金额加上一月累计金额。
其中C3[;B2:-1]表示上父格B2扩展出来的上一格(上月)的C3的值。
7.条件汇总:
在C3单元格中,写入公式:SUM(B2{B2 < 1}),B2扩展出来的列中,满足属于A2的B2小于1的值的和。
其中B2{B2 < 1}表示B2单元格扩展出来的列B2小于1的值。
{B2 < 1},{}里面是筛选条件,B2小于1的值。
D2的公式为:COUNT(B2{B2 > 1})
E2的公式为:AVERAGE(B2)
8.排名、组内排名: SORT(cell) 等同于count(b2[!0]{b3>$b3})+1 ;组内排名=count(c2[!0]{a2=$a2&&c2>$c2})+1。
9.循环引用:
上日库存
假设6月份前留下的余额为0,则在B3单元格中,输入公式:=if(&A3 = 1, 0, B3[A3:-1] + C3[A3:-1] - D3[A3:-1]):当&A3=1,第一天的上日库存为0,否则从第二天开始,上日库存就等于前天库存+上日入库-上日出库。
本日库存
在E3单元格中,输入公式=B3 + C3 - D3:本日库存就为上日库存+本日入库-本日出库。
方法二:
直接在B3单元格中输入循环引用公式=CIRCULAR(A3, B3, C3, D3),等同于公式=if(&A3 = 1, 0, B3[A3:-1] + C3[A3:-1] - D3[A3:-1]),如果为横向扩展。则传递第五个参数false,例如:=CIRCULAR(A3, B3, C3, D3,false)。
10.字母序号:
大写字母排序:char(seq()+64)
小写字母排序;char(seq()+96
11.COUNT统计有效条数
在单元格中统计出产品名称有值的个数,输入公式=count(GREPARRAY(array(C3),len(item)!=0))或=count(GREPARRAY(array(C3),item!=""&&item!=null)):
公式的作用是首先将C3转为数组,过滤掉其中为空的记录,最后统计剩余记录即不为空的个数。
帆软报表(finereport)间格运算常用公式的更多相关文章
- 帆软报表FineReport中数据连接之Websphere配置JNDI连接
以oracle9i数据源制作的模板jndi.cpt为例来说明如何在FineReport中的Websphere配置JNDI连接.由于常用服务器的JNDI驱动过大,帆软报表FineReport中没有自带, ...
- 帆软报表FineReport SQLServer数据库连接失败常见解决方案
1. 问题描述 帆软报表FineReport客户端连接SQLServer(2000.2005等),常常会出现如下错误:com.microsoft.sqlserver.jdbc.SQLServerExc ...
- 帆软报表FineReport中数据连接之Weblogic配置JNDI连接
1. 制作报表的原理 在帆软报表FineReport设计器中先用JDBC连接到数据库,建立数据库连接,然后用SQL或者其他方法创建数据集,使用数据集制作报表,然后把建立的数据库连接从JDBC连接改成J ...
- 帆软报表FineReport中数据连接之Jboss配置JNDI连接
使用sqlsever 2000数据库数据源来做实例讲解,帆软报表FineReport数据连接中Jboss配置JNDI大概的过程和WEBSPHERE以及WEBLOGIC基本相同,用JDBC连接数据库制作 ...
- 帆软报表FineReport中数据连接之Tomcat配置JNDI连接
1. 问题描述 在帆软报表FineReport中,通过JNDI方式定义数据连接,首先在Tomcat服务器配置好JNDI,然后在设计器中直接调用JNDI的名字,即可成功使用JNDI连接,连接步骤如下: ...
- 帆软报表FineReport中数据连接的JDBC连接池属性问题
连接池原理 在帆软报表FineReport中,连接池主要由三部分组成:连接池的建立.连接池中连接使用的治理.连接池的关闭.下面就着重讨论这三部分及连接池的配置问题. 1. 连接池原理 连接池技术的核心 ...
- 帆软报表(FineReport)实现跨数据源父子查询(2阶段查询)
问题描述: 在报表中需要查询多个系统多个数据源,且有一个数据源的入参是另一个数据源的返回值.所以当用户点击查询到展现报表数据这个过程中,需要先做父查询,查询出的结果在作为子查询. 实现方案: 方案一: ...
- 帆软报表FineReport数据库连接编码转换
1. 问题描述 数据库会以某种编码方式保存与读取数据,FineReport解析时默认使用GBK字符集,若数据库端编码与设计器端编码不一致时,就会导致中文及特殊字符的乱码. FineReport在定义数 ...
- 帆软报表FineReport数据连接中游标问题解决方案汇总
1. 概念 在数据库中, 游标是一个十分重要的概念.游标是一种能从包括多条数据记录的结果集中,每次提取一条记录的机制. 用SQL语言从数据库中检索数据后,结果放在内存的一块区域中,往往是一个含有多个记 ...
随机推荐
- (三)jdk8学习心得之方法引用
三.方法引用 https://www.jianshu.com/p/c9790ba76cee 这边博客写的很好,可以首先阅读,在这里感谢这篇文章的博主. 1. 格式 调用者::调用者具备的方法名 2. ...
- 【zabbix教程系列】三、zabbix 3.4 在centos 7 上安装详细步骤
一.环境准备 [root@ltt01 ~]# ip a : lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen ...
- 查看电脑系统参数(Windows)
发现工作的电脑开了很多任务,都运行的很好,所以记录下来(以后买电脑可以参考一下) 一.硬件详情(i5第七代?) 硬盘信息(分有固态和机械硬盘): 固态硬盘直接给了系统使用: 二.体验指数(基本都达到了 ...
- 失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案
微信页面input获取焦点,布局上移,失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案: setTimeout(function(){ let scrollHeight = docum ...
- jquery ajax几种书写方式的总结
Ajax在前端的应用极其广泛,因此,我们有必要对其进行总结,以方便后期的使用. AJAX优点: 可以异步请求服务器的数据,实现页面数据的实时动态加载, 在不重新加载整个页面的情况下,可以与服务器交换数 ...
- springdata 一对多 级联操作 在注解里面开启级联操作@OneToMany(mappedBy = "customer",cascade = CascadeType.ALL)
- postgresql数据库去重方法
数据库去重有很多方法,下面列出目前理解与使用的方法 第一种 通过group by分组,然后将分组后的数据写入临时表然后再写入另外的表,对于没有出现再group by后面的field可以用函数max,m ...
- Docke--Dockerfile指令介绍
Dockerfile 构建镜像常用指令 Dockerfile 是一个文本文件,其内包含了一条条的指定(Instruction),每一条指令构建一层,因此每一条指定的内容,就是描述该层应当如何构建. 通 ...
- logstash filter 处理json
根据输入的json字段,分别建立索引.循环生成注册log和登录log保存到testlog文件中,结果如下: {"method":"register"," ...
- (转)Java回收对象的标记 和 对象的二次标记过程
Java回收对象的标记 和 对象的二次标记过程 二次标记 针对这个问题,虚拟机的做法是进行两次标记,即第一次标记不在“关系网”中的对象.第二次的话就要先判断该对象有没有实现finalize()方法了, ...