【问题标题】:Very complex Excel Formulas?非常复杂的 Excel 公式?
【发布时间】:2016-09-02 05:23:21
【问题描述】:

如何编写一个非常复杂的 Excel 公式?

通常 Excel 公式是这样的:IF(ISNUMBER(SEARCH(substring,text)), "Yes", "No")

我如何编写一个大约 300 行代码的庞大公式:

1) conditional statements
2) loops
3) calling other formulas

拥有可读的代码而不是一行代码很重要。 当然 excel 不是这项工作的编写工具,但我有一个非常旧的应用程序,我负担不起重写它。

【问题讨论】:

  • 使用 vba 模块和函数将其分解并使其可维护?如果有那么复杂,我会认为program 而不是formulafunction
  • 如果你提供一些数据和预期的结果会更容易理解和给出答案。可能有更简单的方法。
  • Complex 什么也没告诉我们。 300 行代码告诉我们的更少。由于您正在谈论代码行,因此您实际上是在谈论使用 VBA。这与它有多少行无关,而与它的效率和正确性无关。

标签: excel


【解决方案1】:

1) 条件语句

IF 但嵌套的 IF 很快就会变得难以编写和读取/调整。一个标准的替代方法是用查找表替换一系列 IF。虽然对于 Google 表格来说,恰好有一个相当极端的例子here(即从近 500 个字符减少到 25 个字符)。

2) 循环

除了通过 UDF 之外,这是不可能的。

3) 调用其他公式

可能是关键。打破每个元素,例如:

=SEARCH(substring,text)  

在一个单元格(比如 B1)中,然后在您的公式中引用该结果:

=IF(ISNUMBER(B1), "Yes", "No")  

这可以在公式复杂的许多单元格中重复。

对于您的具体示例,另一种选择是依赖默认输出 (TRUE / FALSE) 而不是“是”/“否”:

 =ISNUMBER(B1)  

所以从 48 个字符到 23+13,并且更容易理解。

命名范围也很有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    • 1970-01-01
    • 2017-09-30
    相关资源
    最近更新 更多