2009-10-12 26 views
3

這Excel公式與嵌套的IF語句:幫助編寫Excel公式和IF語句的工具?

=IF((B2="East"),4,IF((B2="West"),3,IF((B2="North"),2,IF((B2="South"),1,"")))) 

基本上實現這一點:

If cell B2 = "East" 
    return "4" 

ElseIf cell B2 = "West" 
    return "3" 

ElseIf cell B2 = "North" 
    return "2" 

ElseIf cell B2 = "South" 
    return "1" 

Else 
    return "" 

可以Excel公式可以寫成這樣的「更可讀的」方式,並轉換到正式的語法?有什麼工具可以幫助編寫Excel公式嗎?

這可能是一個「超級用戶」的問題......但只有程序員可能知道答案!

回答

3

Excel Formula Formatter add-in通過Rob van Gelder,在Daily Dose of Excel中提到。

Excel的公式欄忽略換行符和空格,因此您可以按Alt + Enter和空格鍵來格式化公式,只要您喜歡。我試過了,我很快就停止了。太多的空格鍵,特別是如果你需要編輯的話。

0

當我這樣做之前,我剛剛使用我最喜歡的文本編輯器,並做了替換。不是一個很好的解決方案,但它的工作。另外,你可以使這個vb函數更具可讀性。 doign的缺點是增加了執行時間並且必須啓用宏。

對於您的示例,您可能也只是在另一個工作表或某些隱藏的單元格中創建查找表。

+0

我第二查找表。創建一個表,然後使用vlookup。更易於調試。 – guitarthrower

+0

重點不在於NSEW查找,而在於一般的excel公式以及相同的開發工具。 –

+0

我的觀點是,通過一點想法,通常可以將一個看似複雜的公式變成一個簡單的公式。 –

1

一種選擇是使用VBA創建用戶定義函數。

你會一個新的模塊添加到工作簿,然後把一些VB,看上去是這樣的:

Function DirectionAsInt(Direction) 
    Select Case (Direction): 
     Case "East": 
      DirectionAsInt = 4 
     Case "West": 
      DirectionAsInt = 3 
     Case "North": 
      DirectionAsInt = 2 
     Case "South": 
      DirectionAsInt = 1 
    End Select 
End Function 

然後在你的細胞,你可以把:

=DirectionAsInt(B2) 
+0

雖然它不能真正回答我的問題,但它仍然是一個很好的制止差距。 –

1

是否有任何工具可以幫助編寫Excel 公式?

我不認爲有,恐怕。

在給出的具體例子,我會傾向於做到以下幾點:

  1. 創建一個新的名稱,ccall它像CompassPoints和其值設置爲={"South";"North";"West";"East"}
  2. 現在你的公式變爲=MATCH(CompassPoints, B2, 0)