提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:郝浩|2011-08-09 17:10:27.000|阅读 487 次
概述:Spread的公式计算引擎支持300多种内置函数,并支持通过内置函数和运算符来自定义公式。支持的函数包括日期、时间函数、工程计算函数、财务计算函数、逻辑函数、数学和三角函数、统计函数、文本函数等。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
Spread的公式计算引擎支持300多种内置函数,并支持通过内置函数和运算符来自定义公式。支持的函数包括日期、时间函数、工程计算函数、财务计算函数、逻辑函数、数学和三角函数、统计函数、文本函数等。
公式计算引擎支持单元格的引用、表单的交叉引用、循环引用、函数嵌套等。
放置公式在单元格中
你可以添加一个公式到一个单元格或单元格区域内。 你还可以向一行或者一列中所有的单元格添加公式。该公式是一个具有说明公式字符串的公式,通常是包含一个函数,运算符和常数的集合体。
当 把一个公式分配到行或列的时候,这个公式为每一个行或列的单元格所用(假设该公式没有在单元格级别上被覆盖)。对于在一行或者一列中的公式,Spread 使用行或列中的第一个单元格为基准位置。如果你使用相对寻址,这个公式为列A中的每一个单元格进行测算,每一个单元格中都有一个不同的结果 。如果你想要列A中每一个单元格对C2和D2的值的和进行计算(而不是C列和D列中每一个单元格的值进行计算),那么你就可以使用公 式$C$2+$D$2,它使用了绝对地址。
你可以通过指定该对象的Formula属性来添加一个公式。 下面已经给出使用代码的步骤。
当 你使用Cells对象的Text属性对单元格进行赋值时,表单使用单元格类型将一个指定的字符串转换为需要的数据类型。举例来说,一个数字单元格类型将字 符串转换为双精度浮点数数据类型。当你使用Cells对象的Value属性对单元格进行赋值时,表单根据原样接受赋值的对象并且不会进行解析。因此如果你 使用一个值进行设置,它仍然会是字符串。一些计算的函数(举例来说,SUM)忽视了单元格区域中的非数字的值。举例来说,如果单元格区域A1:A3包含数 值{1,“2”,3},那么公式SUM{A1:A3}计算的结果为4因为SUM函数忽略了字符串“2”。请确定你正确的设置了每一个单元格的数字,这些数 字用于公式的计算中并且你已经将其设置为正确的数据类型。
下面的这个示例显示了如何指定一个公式,找到第一个单元格的值的五十倍的结果,并且将结果放入另一单元格中。然后,它可以求得一个单元格区域的总和 (A1到A4)并且将结果放入第三列的每一个单元格中。
FpSpread1.ActiveSheet.Cells[2, 0].Formula = "PRODUCT(A1,5)"; FpSpread1.ActiveSheet.Columns[3].Formula = "SUM(A1:A4)"; |
公式中的单元格引用
除 了数值,运算符,以及函数之外,一个公式还可以包括其它单元格值的引用。举例来说,要查找两个单元格的值的总和,该公式可以通过行和列查找到单元格的坐 标。 你可以使用绝对单元格引用(根据行和列的实际坐标)或相对单元格引用(相对于当前单元格的坐标)。你可以使用ReferenceStyle属性,选择对表 单使用哪种类型的单元格引用。一个公式不能同时包含绝对单元格引用和相对单元格引用。如果你已经将单元格引用样式变成不能显示公式的样式,Spread控 件向公式提供一个问号作为占位符以代表不能显示的单元格引用。
下表包含若干个示例,它们有效地使用了公式的引用:
函数 |
描述 |
SUM(A1:A10) |
在第一列中计算行1到行10的总和 |
PI()*C6 |
Pi倍单元格C6的值 |
(A1 + B1) * C1 |
将前两个单元格的数值相加,然后将这个结果乘以第三个单元格中的值。 |
IF(A1>5, A1*2, A1*3) |
如果单元格A1的值大于5,那么将单元格A1的内容乘以2,否则将A1的内容乘以3 |
如 果你在单元格B1的公式中定义相对单元格引用 为RC[-1]+R[-1]C,则公式将被解析为左边的(A1)单元格的 值加到上面的单元格(“B0“)的值当中去。 控件会将单元格"B0" 的值看作空的单元格。如果你更改单元格引用样式风格为A1的样式,公式会变为A1+B? ,因为A1的样式不能表示单元格"B0"。然而,控件仍认为公式会使用R1C1引用样式。
Spread不支持的区域索引:此区域的开始行 和结束行由不同的引用类型组成(例如,一个绝对坐标和一个相对坐标)。
两个行坐标要么都是绝对的,要么都是相对的。举例来说:
R1C[-1]:R5C[-1] ' 支持 (绝对行 : 绝对行)
R1C[-1]:RC[-1] ' 不支持 (绝对行 : 相对行)
RC[-1]:R5C[-1] ' 不支持 (相对行 : 绝对行)
R[-5]c[-1]:RC[-1] ' 支持 (相对行 : 相对行)
通过设置ReferenceStyle属性或者使用 默认ReferenceStyle值指定引用样式:
fpSpread1.Sheets[0].ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1; |
公式中的表单引用
当一个单元格的引用包括对另一个工作表单元格的引用时,这被称为表交叉引用。例如下面这个公式中的表交叉引用使用了加法操作符:
FirstRoundData!A2 + SecondRoundData!A2)
如 果表单名称包含非字母数字字符( 例如,空格),那么在公式中用单引号扩上表单名称。举例来说,假设表单名称是“page one”,那么该公式就是SUM('page one'!$A$1:$A$5)。 如果表单名称包含单引号字符,那么在公式中使用两个单引号字符。举例来说,假设表单名称是“scott's page” 那么该公式就是SUM('scott''spage'!$A$1:$A$5).
下面的示例使用了公式中默认的表单名称:
fpSpread1.Sheets[0].Cells[0,0].Formula = "Sheet1!A3 + Sheet2!A2"; |
公式中的嵌套函数
你可以将一个函数嵌套在公式的另一个函数中。在下面的的这个示例中,两个单元格(使用SUM函数建立)的值的和被嵌入到PRODUCT公式。 首先单元格类型被设置,然后单元格值被设置。
fpSpread1.Sheets[0].Cells[3, 1].Formula = "PRODUCT(A1, SUM(A2,A3))"; |
在公式中使用循环引用
你可以引用一个单元格公式,这个单元格又包含该公式,就是一个循环引用。这是一个典型的函数递归的方式,通过对相同函数的迭代,接近一个最佳值。你可以选择函数迭代(递归)自身的次数,通过设置重新计算迭代次数属性。
如 果公式“=COLUMNS(A1:C5)”在单元格C4中,就不会有结果返回。换句话说,如果该数组中最后一个行索引与列索引都大于公式所在的单元格的行 索引与列索引,公式就不会进行计算。在这种情况下,单元格C4处于区域A1:C5中。这是公式中的一个循环引用,所以Spread并不计算公式的值,除非 迭代被开启。
Spread通过迭代解决了循环公式的问题。在每次重新计算周期中,控件会进行指定次数的迭代。在每次迭代中,每一个重复的公式只进行一次计算。
一个循环引用的例子如下:
1. 设置公式单元格的单元格类型。
2. 使用表单的MaximumIterations属性设置重新计算迭代次数、
3. 设置表单的引用样式。
4. 使用单元格中的循环引用来定义公式
fpSpread1.ActiveSheet.Iteration = true; fpSpread1.ActiveSheet.SetValue(0, 1, 20); fpSpread1.ActiveSheet.MaximumChange = 5; fpSpread1.ActiveSheet.MaximumIterations = 5; fpSpread1.ActiveSheet.SetFormula(0, 2, "A1*3"); fpSpread1.ActiveSheet.SetFormula(0, 0, "B1+C1"); |
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn
文章转载自:博客园面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@pclwef.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢