2016-09-01 67 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,和更容易遵循。

命名範圍也是非常有用的。