【问题标题】:Tool to help write Excel formulas and IF statements?帮助编写 Excel 公式和 IF 语句的工具?
【发布时间】:2009-10-12 14:19:19
【问题描述】:

这是一个带有嵌套 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 公式吗?

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

【问题讨论】:

    标签: excel syntax converter formulas


    【解决方案1】:

    Excel Formula Formatter add-in 由 Rob van Gelder 在每日 Excel 中提到。

    Excel 的公式栏会忽略换行符和空格,因此您可以使用 Alt+Enter 和空格键来设置您喜欢的公式格式。我试过了,很快就停止了。空格键过多,尤其是在您需要编辑时。

    【讨论】:

      【解决方案2】:

      一种选择是使用 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)
      

      【讨论】:

      • 很好的权宜之计,虽然它并没有真正回答我的问题。
      【解决方案3】:

      有没有什么工具可以帮助写Excel 公式?

      恐怕没有。

      在给出的具体示例中,我倾向于执行以下操作:

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

      【讨论】:

        【解决方案4】:

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

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

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

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

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

        【讨论】:

          【解决方案5】:

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

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

          【讨论】:

          • 我支持查找表。创建一个表,然后使用 vlookup。更容易调试。
          • 重点不是 NSEW 查找,而是一般的 excel 公式和相同的开发工具。
          • 我的意思是,只要稍加思考,就可以将一个看似复杂的公式变成一个简单的公式。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-05-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多