帮助编写Excel公式和IF语句的工具?

时间:2009-10-12 14:19:19

标签: excel syntax converter formulas

这是一个带有嵌套IF语句的Excel公式:

=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公式?

这可能是一个“超级用户”问题......但只有程序员可能知道答案!

5 个答案:

答案 0 :(得分:3)

Rob van Gelder的

Excel Formula Formatter add-in,在Daily Dose of Excel中提到。

Excel的公式栏会忽略换行符和空格,因此您可以按Alt + Enter和空格键来设置您喜欢的公式格式。我试过了,我很快就停止了。太多空格键,特别是如果您需要编辑。

答案 1 :(得分: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)

答案 2 :(得分:1)

  

是否有任何工具可以帮助编写Excel   公式?

我不认为有,我害怕。

在给出的具体例子中,我倾向于做以下事情:

  1. 创建一个新名称,将其命名为CompassPoints,并将其值设置为={"South";"North";"West";"East"}
  2. 现在您的公式变为=MATCH(CompassPoints, B2, 0)

答案 3 :(得分:1)

假设您没有查找表,则可以对数组进行索引匹配。

在索引函数中,使用所需的值创建一个数组。然后,您不添加特定行作为函数的下一个参数,而是添加了match函数。

在Match函数中,指定要查找的值(在这种情况下,我们要在B2中查找该值),然后指定要搜索的数组。然后,使用零参数告诉match语句:使用完全匹配。

只要两个数组的顺序相同,您将在与第二个数组中找到的值相同的位置从第一个数组中获取值。

=INDEX({2,1,4,3},MATCH(B2,{"North","South","East","West"},0))

答案 4 :(得分:0)

当我在使用我最喜欢的文本编辑器并进行替换之前完成此操作时。不是一个很好的解决方案,但它确实有效另外,你可以把它变成一个vb函数,它更具可读性。 doign的缺点是增加了执行时间并且必须启用宏。

对于您的示例,您可能只是在另一个工作表或某些隐藏单元格中创建查找表。