历史版本18 :循环引用 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 应用场景

循环引用是指当一个单元格内的公式直接或间接地引用了这个公式本身所在的单元格。

例如下图示例,记录每天的商日库存,下一天需引用上一日的剩余库存作为本日对应的上日库存。

2021-06-24_20-04-23.png

1.2 实现思路

使用IF( )公式+层次坐标条件表达式实现循环引用。

2. 示例编辑

2.1 数据准备

新建普通报表,添加数据集 ds1 ,SQL 语句为

select 日期, 入库, 出库 from 库存  where strftime('%m',日期)= '06' order by 日期

2.2 报表设计

如下图设计表格,将 ds1 中的字段拖到 A2、B2、C2 单元格,D2单元格用于循环引用,统计每日的上日库存。

2021-06-24_20-13-59.png

D2单元格输入公式:IF(&A2=1,0,B2[A2:-1] + C2[A2:-1] - D2[A2:-1]),公式拆解后的说明如下表所示:

公式
说明
IF(A, B, C )条件表达式,如果A为真,返回B,否则,返回C
&A2 = 1条件表达式的一部分,判断 A2 扩展后对应位置的值是否等于1
B2[A2:-1] + C2[A2:-1] - D2[A2:-1])条件表达式的一部分,上日入库(当前 B2 所在的 A2(日期)单元格往上偏移一个位置(上一日)所对应的 B2 单元格的值)+上日出库(当前 C2 所在的 A2(日期)单元格往上偏移一个位置(上一日)所对应的 C2 单元格的值)-上日库存(当前 D2 所在的 A2(日期)单元格往上偏移一个位置(上一日)所对应的 D2 单元格的值
IF(&A2=1,0,b2[A2:-1] + C2[A2:-1] - D2[A2:-1])第一天的上日库存为 0,否则从第二天开始,上日库存就等于前天库存+上日入库-上日出库

2.3 XIAOGUO 预览

保存模板,预览效果如描述中所示。

模板效果在线查看请点击: 循环引用.cpt

3.模板下载编辑

已完成模板可参考%FR_HOME%\webroot\WEB-INF\reportlets\doc\Advanced\Cacuate_Between_Cells\循环引用.cpt

点击下载模板:循环引用.cpt