类excel功能绝对引用单元格下拉拖动计算

编辑
文档创建者:yiyemeiying (78157 )     浏览次数:2301次     编辑次数:5次     最近更新:caixiaolan 于 2017-07-21     

目录:

1. 问题描述编辑

大家都知道Excel功能非常强大,但是Finereport中有些Excel功能是无法实现的;比如一计算公式:E3*F1,我想要实现 E3列单元格递增而F1单元格不变动 的计算时,Excel中用单元格绝对引用(=E3*$F$1)很容易实现的,但是Finereport直接下拉拖动是无法实现的。如果直接拖拽,单元格会随着递增,如图所示:

222

正确的效果:

222


2. 实现思路编辑

这个问题本质上是公式自动扩展问题。其实FR只是支持Excel的常用公式,Excel公式非常多,并不是完全支持的。 既然这里=E3*F1 进行拖拽后,会自动增长行列序号。 那么让F1是个计算的结果而不是个单元格就可以了。

3. 解决方案编辑

利用eval公式只返回计算结果而不是单元格就行;我们可以在G3单元格输入公式:= E3 *eval("F" + "1")

222

在公式执行前,+这个运算符不执行,所以公式里不存在F1单元格,所以纵向拖拽这个公式即可。

注:由于这里计算公式里F1是通过eval的计算结果,假设这里是填报,比如F1单元格的值是个文本框,值修改之后, G3/G4/G5/G6的计算结果不会动态联动改变的

4. 预览效果编辑

保存后,点击分页预览,即可看到如上描述中的效果。

222

附件列表


主题: 报表应用
如果您认为本文档还有待完善,请编辑

文档内容仅供参考,如果你需要获取更多帮助,请咨询帆软技术支持
关于技术问题,您还可以通过帆软论坛获取帮助,论坛上有非常多的大神,有些水平比帆软工程师还要高哦。
若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

此页面有帮助吗?