计算稿件原理解析

发布时间 2023-09-07 15:38:57作者: SheZQ

*.起因

一位卡哇伊得同事姐姐想知道这个公式得应用原理,所以就写了一篇教程
image

*.原理就是用名称管理器给需要计算得区域文本(计算式区域)利用宏表函数evaluate对名称区域进行计算

1. 名称管理器命名区域

在表格《试验桩中》,查看“名称管理器”,可以看到被命名成“ww”的名称,被Evaluate函数计算,evaluate得函数区域是“D:D”,也就是D列。
image

2.宏表函数Evaluate

参考简单教程:知乎:Excel中利用“EVALUATE函数”求计算式结果

既然是宏表函数,那么它就必须打开宏才能使用。由于安全性问题,excel和wps默认是不打开VBA宏设置的,所以需要先允许宏运行。
点击此处跳转excel启用宏得教程

Evaluate函数表达式解析:
参考evaluate函数解析教程:知乎:evaluate函数计算带文字说明/单位的公式

evaluate函数

默认是将所有变量转换成数值对象来处,这也是为什么D列中得文本能被Evaluate计算得原因,当然evaluate可以做更复杂得操作,比如:
3[长]*5[宽]*2[高]这种,通过文本函数处理筛选后,也能将文本处理成"352"来处理计算,但是一定要将文本剔除,不然evaluate因无法转换文本对象为可计算得数值而报错。

*.更好得解决方案:FORMULATEXT 函数

由于evaluate函数得安全性问题,微软官方也不建议使用过分使用,

如果使用 EVALUATE 函数来计算存储为文本的公式,则可以改用 FORMULATEXT 函数。FORMULATEXT 函数以文本形式返回公式。

以下修改表格得方法:

1. 对工程量得列 使用公式

image

2. 计算式列使用FORMULATEXT函数

image

由于使用FORMULATEXT函数会产生”=“在前面,影响美观,所以需要对文本进行修饰。

FORMULATEXT函数解析:

3.使用切片函数right取除第一位所有数

  1. right函数是从右边往左边取数
  2. left函数是从左边往右边取数
  3. mid函数是从中间取数

right函数解析:微软:Right 函数

这里我们在第二步用FORMULATEXT(E18)获取了整个公式得文本,那么,我们不要那个在头部得等于号"=",就只要”从右边往左边得数,除开第一个数得字符长度“

right函数刚好符合我们得要求。

我们用len()函数获取整个文本得字符长度,然后用len()-1得方式来获取扣一个字符后得程度

最后right函数计取从右边得开始得文字长度,right(文本,len(文本)-1)

4.最后获得你想要得展示效果

image

*.引用

Excel打开宏得教程

  1. 在“选项”中
    image

  2. 找到信任中心设置
    image

3.在宏设置中启用宏
image