魔方网表 让信息化更简单

 找回密码
 注册

手机号码,快捷登录

手机号码,快捷登录

查看: 2034|回复: 1

分解特殊格式数据求值,比如“105-89-99-110”,计算:(105+89+99+110)/4

[复制链接]
pobopo 发表于 2014-6-24 21:49:06 | 显示全部楼层 |阅读模式
本帖最后由 pobopo 于 2014-8-23 05:46 编辑

【新手】地球村 2014-6-24 星期二 17:26:34
QQ图片20140624213047?.jpg
魔方网表  怎么解决这个问题

有知道的不,求解答,谢谢
====================
解答:

宽的平均值行间计算公式:

MFEVAL("value("&SUBSTITUTE($MF(宽)$,"-",")+value(")&")")/MFEVAL("count("&"value("&SUBSTITUTE($MF(宽)$,"-","),value(")&")"&")")

比如“105-89-99-110”,计算:(105+89+99+110)/4,结果:100.75
QQ图片20140624221504!_conew1.jpg

说明:
思路关键:解析“宽”含有的的特殊格式数据。该数据的主要特征:以“-”作为分隔符。比如“105-89-99-110”,计算:(105+89+99+110)/4
具体做法:比如,在“宽的平均值”字段的行间公式里的设计计算公式,采用字符替换法。比如:将“-”替换成“+”或“,”及其有关字符(此处为value()函数、count()函数),以组成可以计算数值的表达式字符串,然后再使用MFEVAL()解析求值函数求出其值。

-------------------------------------------------------
MFEVAL() 返回公式表达式计算结果。

语法:   MFEVAL(expr,[macro1,macro2...])

解释: expr 公式表达式。表达式可以是常量字符串,例如"$MF(数量)$*$(金额)$",可以是通过MFVLOOKUPC从表单里查询出来的文本值,例如MFE(1, MFVLOOKUPC("公式列表","公式", "名称", "转中文大写")),甚至可以是空间变量、组变量或者任何可存储表达式文本的字段宏。
    macro1 引用的宏。如果表达式中包含了源表单类的宏,如"$MF(源表单.金额)$",需要在此参数里指定,例如$MF(源表单.数量)$,$MF(源表单.金额)$。
-------------------------------------------------------

==============补充==================
如果有多个“-”出现在数据之间,那么可以按照以下的思路:
先将字符串中全部“-”替换为空格,再使用trim()函数去掉多于的空格,接着按照原来的处理方法将空格替换掉,以组成计算表达式字符串。
---------------------------
--------但是,trim()函数(功能:除了单词之间的单个空格外,清除文本中所有的空格。)只能去除字符串首尾的空格,而字符串中间的空格不会被去除。

--------同时有一个有趣的发现:下面的计算公式,可以正确计算哦。
105+89+99++++110
105-89-99----110
截图-魔方网表-MFEval函数示例-2014-08-23_0530.png
--------------------------------
这样的话,求值就没问题了。
不过,还需要解决数据的计数问题。网友雾慾(QQ昵称)贡献一妙招:
MFEVAL("MFSIZE(MFV("&(SUBSTITUTE("105-89-99----110","-",","))&"))")
----
MFSIZE()计算列表中的元素个数,MFV()返回元素列表。
于是,就有了如下表达式:
-------------------------------------------------------
MFEVAL("value("&SUBSTITUTE($MF(宽)$,"-","+")&")")/MFEVAL("MFSIZE(MFV("&(SUBSTITUTE($MF(宽)$,"-",","))&"))")
QQ图片20140625151702宽-.jpg
-------------------
最后,“立方数”的计算公式:
($MF(长)$*MFEVAL("value("&SUBSTITUTE($MF(宽)$,"-","+")&")")/MFEVAL("MFSIZE(MFV("&(SUBSTITUTE($MF(宽)$,"-",","))&"))")*$MF(厚)$)/1000000
===================================
wangjingwu 发表于 2014-6-25 08:16:43 | 显示全部楼层
牛逼!!好好学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则


Archiver|手机版|小黑屋|魔方软件 ( 京ICP备08008787号 )

京公网安备 11010702001722号

GMT+8, 2024-6-2 10:46 , Processed in 0.077303 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表