找回密码
 立即注册

QQ登录

只需一步,快速开始

James.Lv 讲师达人认证 悬赏达人认证 活字格认证 Wyn认证
超级版主   /  发表于:2020-1-15 13:49  /   查看:4333  /  回复:0
本帖最后由 Eden.Sun 于 2024-12-17 11:12 编辑

如下图:如何在一个表格中实现同比环比计算 1.png
当然可以选择通过SQL语法直接得到同比和环比数据进行计算,但是SQL的实现比较复杂,可能比较难理解。
本贴主要介绍通过Wyn Enterprise在表格中实现同比环比计算

重点:使用报表的丰富的表达式能力,这块使用的是  LOOKUP  表达式
实现思路,创建两个数据集,一个本期数据,另一个用来作为对比数据,根据同比环比概念获取到同期和环期的数据,然后进行计算相应的同比增长率以及环比增长率


具体实现步骤:
1、创建报表,添加相关数据集(本期数据集和用来对比分析的数据集)。
2.png

数据集1:本期数据集,根据类别名称、年、月来进行分组统计得到本期数据。(select sum(购买数量) as 数量,sum(订单金额) as 金额,类别名称,Year(订购日期) as 年,Month(订购日期) as 月 from 销售明细 group by 类别名称,Year(订购日期),Month(订购日期))

数据集2:对比数据集,与数据集1实现完全一致,只不过是用来与本期的数据进行对比,获取到本期数据相应的同期和环期数据

2、添加表格,绑定本期数据,可以根据习惯通过表达式将年月合并为一列显示。
在报表设计器页面添加表格,绑定数据集1的数据,通过表达式将年月合并为一列(本期日期:=Fields!年.Value & "-" & Fields!月.Value)显示。
4.png
进行预览:本期的相关数据
3.png

注意:重点来了


3、利用LOOKUP表达式通过数据集2的对比数据计算出本期相对应的同期和环期数据。
本例子呢,计算的是两年的本期金额,同期金额,环期金额以及同比增长率和环比增长率。
设计器中添加列,绑定同比日期,同期金额,环比日期,环期金额,同比增长率,环比增长率。
这些列的数据绑定选择为表达式通过LOOKUP函数来计算得到
6.png

同比日期:与本期月份相同的上一年日期(=Fields!年.Value-1 & ”-“ & Fields!月.Value)


同期金额:利用LOOKUP计算同期金额(=Lookup(Fields!类别名称.Value & "|" & Fields!年.Value-1 & "|" &Fields!月.Value ,Fields!类别名称.Value & "|" & Fields!年.Value & "|" &Fields!月.Value, Fields!金额.Value, "数据集2"))


环比日期:本期为1月时,环期是上一年12月(=IIF(Fields!月.Value-1>=1,Fields!年.Value & "-" &Fields!月.Value-1,Fields!年.Value-1 & "-" & "12" ))


环期金额:同样本期为1月时,环期是上一年的12月金额(=IIF(Fields!月.Value-1>=1,Lookup(Fields!类别名称.Value & "|" & Fields!年.Value & "|" &Fields!月.Value-1 ,Fields!类别名称.Value & "|" & Fields!年.Value & "|" &Fields!月.Value, Fields!金额.Value, "数据集2"),Lookup(Fields!类别名称.Value & "|" & Fields!年.Value-1 & "|" & "12" ,Fields!类别名称.Value & "|" & Fields!年.Value & "|" &Fields!月.Value, Fields!金额.Value, "数据集2") ))

同比增长率:通过(本期金额-同期金额)/同期金额,可以采用文本框的数据来进行计算 (=(ReportItems!文本框8.Value-ReportItems!文本框23.Value)/ReportItems!文本框23.Value)

环比增长率:通过(本期金额-环期金额)/环期金额,同样采用文本框的数据来进行计算 (=(ReportItems!文本框8.Value-ReportItems!文本框17.Value)/ReportItems!文本框17.Value)

4、设计完成后进行预览和保存
7.png

报表实现同比环比.zip

4.17 KB, 阅读权限: 1, 下载次数: 277

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部