2016-09-01 64 views
1

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

一般Excel Formulas是这样的:IF(ISNUMBER(SEARCH(substring,text)), "Yes", "No")

我如何写一个巨大的公式约300行有许多代码:

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

有一个可读的代码,而不是一个线混乱是很重要的。 当然excel不是这个工作的写入工具,但我有一个非常古老的应用程序,我不能重写它。

+2

使用vba模块和函数将其分解并使其可维护?如果是复杂的,我会认为'program'而不是'formula'或'function'。 –

+1

如果您提供了一些数据和预期结果,那么理解并给出答案会更容易。可能有更简单的方法。 –

+1

复杂的告诉我们什么都没有。而300行代码告诉我们更少。因为你正在谈论使用VBA的代码行。它不是关于它有多少行,它的效率和正确性如何。 – logixologist

回答

1

1)条件语句

IF但嵌套的IF很快就会难写,难以读/调整。一个标准的替代方案是用查找表替换一系列的IF。虽然对于Google表格,但碰巧有一个相当极端的例子here(即从近500个字符降至25)。

2)环路

除了通过UDF,出了问题。

3)调用其它式

可能的关键。打破各部分,使得为你的例子:

在一个小区(说B1)
=SEARCH(substring,text) 

然后指的是结果在公式中:

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

这可以重复在许多细胞,其中式是复杂的。

为了您的具体的例子,另一种选择是依靠默认输出(TRUE/FALSE),而不是 “是”/ “否”:

=ISNUMBER(B1) 

所以从48个字符至23 + 13,和更容易遵循。

命名范围也是非常有用的。