【问题标题】:Calculate Text formula (NO VBA and NO Evaluate)计算文本公式(无 VBA 和无评估)
【发布时间】:2017-12-10 12:18:06
【问题描述】:

我正在使用 Excel 计算字符串值,其中 Evaluate() 工作正常不允许在名称管理器和我不允许在 VB A 中使用它,因为文件被转换为 .xls。这就是问题所在。

我有 100 个长公式示例:

($F$10+0)+($F$11+0.125)+($F$10+0.0625)

我需要分别评估括号之间的值。
我可以将公式分隔为

A1 is ($F$10+0)          
A2 is ($F$11+0.125)       
A3 is ($F$10+0.0625)

我想在这个字符串前面加上一个“=”号,然后计算 A1、A2 和 A3 的值。
但是,我不允许在文件管理器中使用函数 EVALUATE(),它在单元格中不起作用,并且我不允许使用 VB A 对公式进行编码。
我可以使用评估的替代品吗?
谢谢

【问题讨论】:

    标签: excel xls


    【解决方案1】:

    欢迎来到 Excel 的阴暗面。

    如果您不能使用:

    1) VBA

    2) 宏

    3) 评估()

    4) 文件管理器/定义名称

    那么没有简单的公式可以帮助您(而且您无法自己制作)。微软多年来一直故意不解决这个问题。

    因此,您可以使用自己的设备在 Excel 单元格中创建自己的解析器。

    如果您有不同类型的公式可以改变符号,或者寻址单元格的数量,或者公式可以采取的任何其他疯狂的数量,这可能会非常困难。

    但是...如果您对公式的表达方式有最小数量的偏差...您可以编写一些可以解决问题的东西。

    这有一个警告......每次都必须为公式提供相同的参数。而你给出的例子,每个公式的结构定义完全相同。

    因此,使用您的示例,您可以在 A2 列中编写此代码:

    =INDIRECT(MID(A1,SEARCH("$",A1),SEARCH("+",A1)-SEARCH("$",A1)),TRUE)+MID(A1,SEARCH("+",A1)+1,LEN(A1)-SEARCH("+",A1)-1)
    

    然后您可以将该代码复制到 B2 和 C2。

    这会给你正确的数学,就像它是一个公式一样。

    为此工作所需的结构参数是:

    1) 单元格地址必须始终以美元符号 $ 开头

    2) 单元格地址必须紧跟加号+

    3) 公式只做一次加法

    4) 加号后面的操作数必须是数字

    5) 公式必须以括号结尾)

    6) 以括号开头也无妨 (

    而且由于您的所有公式都遵循此结构...我提供的公式将起作用。

    如果您需要将第 3 项更改为也允许“减法”,那么您将需要在公式中添加 if 语句,它会很快变得复杂。不可能的?不,但是一团糟?是的。

    无论如何,这应该适用于您拥有的所有限制。也就是说......如果您的公式不偏离已提供的结构。如果您有不同的公式结构,您需要让我们知道它们......或者更好的是,编写您自己的代码。

    希望这会有所帮助。 :)

    【讨论】:

    • 谢谢阿布拉。我会等待更多的反馈,但这可以解决问题,正如你所说的那样有局限性。我有时在括号之间有 3 个部分,或者有时里面有一个乘法。我必须玩弄这个,看看我是否可以生成辅助公式,但这是一个很好的开始对我来说,MS 的所有缺陷都令人惊叹。我正在使用 ERP。他们在后台使用 Excel。他们是有限的——不是 MS。我认为大多数 ERP 公司不配拥有他们拥有的数十亿美元的产业。他们只是想把一个正方形围成一个圆圈来出售并吸引你一生
    • 大声笑...您对许多 ERP 的看法可能是正确的。 “玩弄”是有趣的部分。 :) 是的,将其分解为 3 个部分可能会很棘手,尤其是在混合乘法的情况下。 PEDMAS 现在是一个问题。在编写复杂的单元格代码时,我发现将每个函数分解成自己的单元格更容易,并且有很多单元格调用以前的单元格。所有这些都在另一张纸上,这样我就可以记录下所有疯狂的行为。然后最后将它们组合成一个庞大的公式以粘贴回主页。 “文档”是那里的关键词。
    猜你喜欢
    • 1970-01-01
    • 2019-05-27
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 2017-06-16
    • 1970-01-01
    • 2021-07-11
    • 1970-01-01
    相关资源
    最近更新 更多